我正在学习django,想问一个问题, 我有一个简单的表单,要求用户输入并单击提交,管理员会在提交表单时收到电子邮件。我想让管理员批准/拒绝表单并保存。 我只是为管理网站显示批准/拒绝选择而苦苦挣扎。它为管理员和用户提供了论文,或者两者都没有显示。
request_status = (
('select', 'Select'),
('Approved', 'Approved'),
('Denied', 'Denied'),
)
status = models.CharField(max_length=20, choices=request_status, default='select')
我的models.py代码是:
class SignUp(models.Model):
ENV_CHOICE = (
('select', 'Select'),
('Production', 'Production'),
('Lab', 'Lab'),
('EBC_env', 'EBC_env'),
('Los_Angles', 'Los Angles'),
)
request_status = (
('select', 'Select'),
('Approved', 'Approved'),
('Denied', 'Denied'),
('Added_comment', 'Added_comment'),
)
email = models.EmailField()
full_name = models.CharField(max_length=120, blank=True, null=True)
timestamp = models.DateTimeField(auto_now_add=True, auto_now=False)
updated = models.DateTimeField(auto_now_add=False, auto_now=True)
what_is_the_change = models.TextField(max_length=250, null=True)
environment = models.CharField(max_length=10, choices=ENV_CHOICE, default='select')
models.DateTimeField(default=timezone.now)
status = models.CharField(max_length=20, choices=request_status, default='select', blank=True)
def __unicode__(self):
return self.email
我的forms.py代码是:
class SignUpForm(forms.ModelForm):
class Meta:
model = SignUp
fields = ('full_name', 'email', 'environment', 'what_is_the_change', 'change_date_and_time')
它显示了model.CharField,因为我的表单继承了这些字段。希望我有意义,否则我不知道如何更好地解释它。提前谢谢。
答案 0 :(得分:0)
在您的forms.py中,假设您正在为模型使用modelform。确保模型的Meta不包含“字段”中的状态。
e.g。
如果您的模型是models.py中的ExampleModel:
class ExampleModel(models.Model):
request_status = (
('select', 'Select'),
('Approved', 'Approved'),
('Denied', 'Denied'),
)
status = models.CharField(max_length=20, choices=request_status, default='select')
user_input = models.CharField(max_length=200)
你的forms.py是:
class ExampleModelForm(forms.ModelForm):
class Meta:
model = ExampleModel
fields = ('user_input',) #note the abscence of status
应该在管理中使用两个字段生成表单,并在用户区域中仅使用用户输入字段生成表单。