p.g*_*all 16 nullable foreign-keys django-admin
这是我的一个模型的简化版本:
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)
Run Code Online (Sandbox Code Playgroud)
此类管理用于将项目列表从订阅源导入数据库的规则.
尽管管理系统在模型中声明为可空,但管理员系统不会在不选择feed_provider_category的情况下添加ImportRule.数据库(SQLite目前)甚至检查出ok:
>>> .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"),
);
...
Run Code Online (Sandbox Code Playgroud)
我可以很容易地在python shell中创建对象:
f = Feed.objects.get(pk=1)
i = ImportRule(name='test', feed=f)
i.save()
Run Code Online (Sandbox Code Playgroud)
...当然,管理系统不会让我编辑它.如何让管理员让我编辑/创建对象而不指定该外键?
小智 5
你应该尝试添加null = True,就像这样:
car = models.ForeignKey(Car, default=None, null=True, blank=True)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10066 次 |
| 最近记录: |