Django 表单和模型之间的循环依赖关系
这是一张表格:Django 表单和模型之间的循环依赖关系,django,django-models,Django,Django Models,这是一张表格: class ToDoItemModelForm(forms.ModelForm): class Meta: from ToDoDashboard.models import ToDoItem model = ToDoItem fields = ['description', 'label', 'comment', ('start_date', 'due_date', 'time_estimate_hours')] de
class ToDoItemModelForm(forms.ModelForm):
class Meta:
from ToDoDashboard.models import ToDoItem
model = ToDoItem
fields = ['description', 'label', 'comment', ('start_date', 'due_date', 'time_estimate_hours')]
def clean(self):
start_date = self.cleaned_data.get('start_date')
end_date = self.cleaned_data.get('due_date')
if start_date > end_date:
raise forms.ValidationError("Dates are incorrect")
return self.cleaned_data
这是一个模型:
class ToDoItem(models.Model):
dashboard_column = models.ForeignKey(DashboardColumn, on_delete=models.CASCADE)
description = models.TextField()
label = models.CharField(max_length=128)
start_date = models.DateTimeField(null=True)
due_date = models.DateTimeField(null=True)
from ToDoDashboard.forms.ToDoItemForm import ToDoItemModelForm
form = ToDoItemModelForm
现在显示ImportError:无法从部分初始化的模块“ToDoDashboard.models”导入名称“ToDoItem”(很可能是由于循环导入)
如何解决这个问题?这根本不是为您的用例定义表单属性的地方,它应该在ModelAdmin类中定义为
为什么要在模型内部设置表单?什么意思?对不起,我没有正确阅读您的评论。我这样做是为了在Admin中进行自定义验证,为什么不呢?然后在ModelAdmin中设置表单,而不是在模型中设置表单,
PersonAdmin(admin.ModelAdmin):
exclude = ['age']
form = PersonForm