【发布时间】:2017-08-17 12:07:55
【问题描述】:
我正在尝试创建一个表单变量。由于默认玩家的级别为 0,他可以更改名称。等到他1级的时候,就可以改名字和头像了。 3级时,他可以改变的是名字、头像和工作。等等……
Models.py:
class Player(models.Model):
level = models.SmallIntegerField(default=0)
name = models.CharField(max_length=50)
avatar = models.URLField(default='http://default-picture.com/01.png')
job = models.TextField(null=True)
Fomrs.py:
class ProfileForm(forms.ModelForm):
class Meta:
model = Player
fields = ['name', 'avatar', 'job']
widgets = {
'name': forms.TextInput(),
'avatar': forms.TextInput(),
'job': forms.Textarea(),
}
Views.py:
def game(request, id):
user = get_object_or_404(Player, id=id)
if request.method == 'POST':
form = ProfileForm(request.POST, instance=user)
if form.is_valid():
form.save()
return HttpResponse('Success')
else:
form = ProfileForm(instance=user)
return render(request, "page/template.html",
{'form': form})
模板.html:
{{ form }}
可以在将表单发送到渲染引擎之前为表单的渲染添加条件吗?或者我需要在我的模板中使用条件?
我只是何时允许实例化对象根据这些参数之一具有或多或少的可能性(在示例中是玩家的级别)。
【问题讨论】:
标签: django django-models django-forms django-templates django-views