我正在尝试覆盖默认的django管理员更改网址。 在我的表格中,我有 复合主键 。
class ABC(models.Model):
code = models.ForeignKey('PQR', models.DO_NOTHING, db_column='code', primary_key=True)
language = models.ForeignKey(Languages, models.DO_NOTHING, db_column='language')
me_name = models.TextField()
common_name = models.TextField(blank=True, null=True)
abbreviation = models.TextField(blank=True, null=True)
class Meta:
managed = False
db_table = 'abc'
unique_together = (('code', 'language'), ('language', 'me_name'),)
现在我在每个对象的django admin中的管理员网址是/ admin / home / abc / {{code}} / change /。 但我在对象中重复了代码,因为主键是('代码','语言')的组合。因此对于重复代码抛出的对象
Error
MultipleObjectsReturned at /admin/home/abc/X00124/change/
get() returned more than one ABC -- it returned 2!
此处X00124此代码与多个对象关联。
我想在这里覆盖modeladmins get_urls()方法并构建url /admin/home/abc/ {{}}} / {{language}} /change /。
我试过但没有成功。将不胜感激。
答案 0 :(得分:0)
我制作了一个虚拟键,将复合键表示为单个值,允许在不更改代码的情况下使用 Django 管理员 -