窗体和模型之间的循环依赖关系



这是一个表单:

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

现在它说导入错误:无法从部分初始化的模块"ToDoDashboard.models"导入名称"ToDoItem"(很可能是由于循环导入(

如何解决问题?

这根本不是为您的用例定义表单属性的地方,它应该在 ModelAdmin 类中定义,如文档所示

PersonAdmin(admin.ModelAdmin): 
exclude = ['age']
form = PersonForm

最新更新