1

IntegerField私は自分のモデルの1つに非常に単純なものを持っています。

models.py

## Imports

from django.db import models

class UserModel(models.Model)
    name = models.CharField(max_length=50)


class NumberModel(models.Model)
    user = models.ForeignKey(UserModel)
    number = models.IntegerField(blank=True, null=True) # This is the IntegerField

ビューでは、数値モデル自体を渡しています:

ビュー.py

def change_user_number(request):
    number = get_object_or_404(models.NumberModel, user=request.user)
    return render_to_response('change_number.html', {'number' : number }, context_instance=RequestContext(request))

上記の整数フィールドの値をカスタム フォームの 1 つで使用すると、次のように表示されます。

空白の IntegerField の値を持つテキスト フィールド

テンプレートには、次のようなものがあります。

テンプレート

<form id="" action="" method="POST">
    <p><label for="user_number"></label></p>
    <p><input type="text" name="user_number" id="user_number" value="{{ number.number }}" />
    <input type="submit" value="submit" />
</form>

値が存在する場合にのみ値を表示したいと思います。値がデータベースに null として保存されていることは確かですが、なぜ"None".

また、次のことも試しましたが成功しませんでした。

<input type="text" name="user_number" id="user_number" {% if number.number == "None" %} value="" {% else %} value="{{ number.number }}" {% endif %} />
4

2 に答える 2

3

number.numberisの場合None、データベースに null として格納されます。ダニエルがコメントで言っているように、Noneは string と同じではない"None"ため、比較が機能しません。

default_if_noneテンプレート フィルターを使用することをお勧めします。

{{ number.number|default_if_none:"" }}

0これにより、値がとの場合が区別されますNone

于 2012-12-20T11:04:28.690 に答える
1

値が存在するかどうかを確認します。

{% if number.number %}
于 2012-12-20T10:35:35.750 に答える