这是我的一个模型的简化版本:

class ImportRule(models.Model):
  feed = models.ForeignKey(Feed)
  name = models.CharField(max_length=255)
  feed_provider_category = models.ForeignKey(FeedProviderCategory, null=True)
  target_subcategories = models.ManyToManyField(Subcategory)


此类管理用于将Feed中的项目列表导入数据库的规则。

管理系统不允许我在不选择feed_provider_category的情况下添加ImportRule,尽管在模型中将其声明为可为空。数据库(目前为SQLite)甚至签出还可以:

>>> .schema
...
CREATE TABLE "someapp_importrule" (
  "id" integer NOT NULL PRIMARY KEY,
  "feed_id" integer NOT NULL REFERENCES "someapp_feed" ("id"),
  "name" varchar(255) NOT NULL,
  "feed_provider_category_id" integer REFERENCES "someapp_feedprovidercategory" ("id"),
);
...


我可以很容易地在python shell中创建对象:

f = Feed.objects.get(pk=1)
i = ImportRule(name='test', feed=f)
i.save()


...但是管理系统当然不允许我对其进行编辑。
如何让管理员允许我编辑/创建对象而无需指定该外键?

最佳答案

blank=True怎么样?从Django's docs


如果为True,则该字段允许为空白。默认值为False

10-02 02:58
查看更多