我設置了Django的管理員有:Django的 - <class>沒有ForeignKey的
model.py
class Types(models.Model):
types = models.CharField(max_length=60)
def __str__(self):
return self.type
class File(models.Model):
file_name = models.CharField(max_length=60)
type = models.ForeignKey(Types)
def __str__(self):
return self.file_name
class Set(models.Model):
set_name = models.CharField(default='New Set', max_length=60)
data = models.DateTimeField('Date of creation')
file = models.ForeignKey(File)
size = models.IntegerField(default=0)
def __str__(self):
return ("%s - %s" % (self.set_name, str(self.data)))
class Meta:
ordering = ["data"]
而在admin.py
class FileInline(admin.StackedInline):
model = File
extra = 2
class SetAdmin(admin.ModelAdmin):
fieldsets = [
(None, {'fields':['set_name']}),
(None, {'fields':['data']}),
(None, {'fields':['size']}),
]
inlines = [FileInline]
admin.site.register(Set, SetAdmin)
有了這個我收到以下錯誤:
(admin.E202) 'Disk.File' has no ForeignKey to 'Disk.Set'
根據https://docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.ForeignKey中的文檔,它應該可以工作。
我做了一些測試:https://docs.djangoproject.com/en/dev/ref/contrib/admin/#working-with-a-model-with-two-or-more-foreign-keys-to-the-same-parent-model但沒有成功。反轉這些類,從Set中使用ForeignKey創建File也不起作用。
從Django教程我已經設法讓關係工作,但我在複製它。
我檢查的建議在以下職位: Inline in Django admin: has no ForeignKey和 Django - Inline (has no ForeignKey to)但我無法弄清楚什麼是錯的。
我使用Python 2.7.6,Django 1.8.4,MySQL 5.6和Ubuntu 14.04。
我真的很感激任何建議!
當你反轉FK時,你會得到什麼錯誤? –
Disk.File沒有fk到Disk.set,看起來是另一種方式。 – cdvv7788