这是一个表单:
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