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