gpt4 book ai didi

django - 禁止使用没有 'fields' 属性的 ModelFormMixin

转载 作者:行者123 更新时间:2023-12-02 11:34:03 25 4
gpt4 key购买 nike

我使用的是 Django 1.11

我创建了一个表单并使用基于类的 View 创建记录并保存到数据库。

Business/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

业务/表单.py

class BusinessForm(ModelForm):
class Meta:
model = Business
fields = ['user']

Business/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后,它工作正常。但我不想这样做,因为我可能会在多个 View 上使用此表单,因此将来需要在多个页面上进行更改。

最佳答案

您的表单未被识别。这是因为您在 View 中使用了 form 设置属性,但正确的属性是 form_class

(请注意,如果您正确设置了 form_class,则也不需要 model。)

关于django - 禁止使用没有 'fields' 属性的 ModelFormMixin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46701426/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com