我正在使用 Django 1.11
我创建了一个Form
并使用Class based view
来创建记录并保存到数据库。
业务/models.py
class BusinessType(models.Model):
title = models.CharField(max_length=100)
created = models.DateTimeField('date created', auto_now_add=True)
modified = models.DateTimeField('last modified', auto_now=True)
class Meta:
db_table = 'business_types'
def __str__(self):
return self.title
class Business(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
name = models.CharField(max_length=200)
business_type = models.ForeignKey(BusinessType, on_delete=models.CASCADE)
created = models.DateTimeField('date created', auto_now_add=True)
modified = models.DateTimeField('last modified', auto_now=True)
class Meta:
verbose_name = 'business'
verbose_name_plural = 'businesses'
db_table = 'businesses'
def __str__(self):
return self.name
业务/Forms.py
class BusinessForm(ModelForm):
class Meta:
model = Business
fields = ['user']
业务/views.py
class BusinessCreate(LoginRequiredMixin, CreateView):
model = Business
form = BusinessForm
def form_valid(self, form):
messages.success(self.request, 'form is valid')
form.instance.user = self.request.user
form.save()
def get_success_url(self):
messages.success(self.request, 'Business Added Successfully')
return reverse('business:list')
在加载它的模板时BusinessCreate
会出现错误
禁止使用不带 'fields' 属性的 ModelFormMixin(BusinessCreate 的基类)。
我的试炼
移至fields
后views class
,它工作正常。但我不想这样做,因为我可能会在多个视图上使用此表单,因此如果需要,将来需要在多个页面上进行更改。