Я пытаюсь определить 2 модели в django следующим образом:
class Selector(models.Model):
# A Beautiful Soup selector
selector = models.CharField(max_length=ELEMENT_SELECTOR_MAX_LENGTH, null=True, blank=True)
def __str__(self):
return self.selector
class Provider(models.Model):
# Articles' parent container selector
articles_parent_container_selector = models.ForeignKey(Selector, related_name="articles_parent_container",
help_text=_("Beautiful Soup selector for all articles' "
"parent container"))
# Article's parent container selector
article_parent_container_selector = models.ForeignKey(Selector, related_name="article_parent_container_selector",
help_text=_("Beautiful Soup selector for each article"))
и т. д. и т. д. Идея состоит в том, чтобы иметь более одного селектора для каждого поля модели Provider.
Чего я пытаюсь добиться в приложении администратора, так это встроенных строк charField для каждого поля модели поставщика.
Итак, мой admin.py похож на
from django.contrib import admin
from .models import Provider, Selector
class SelectorInline(admin.StackedInline):
model = Selector
class ProviderAdmin(admin.ModelAdmin):
inlines = [
SelectorInline,
]
admin.site.register(Provider, ProviderAdmin)
я получаю ошибку
<class 'news_providers.admin.SelectorInline'>: (admin.E202) 'news_providers.Selector' has no ForeignKey to 'news_providers.Provider'.
я тоже пробовал
class SelectorInline(admin.StackedInline):
model = Selector
fk_name = 'articles_parent_container'
как описано здесь: встроенные формы Django с несколькими внешними ключами
но теперь ошибка:
<class 'news_providers.admin.SelectorInline'>: (admin.E202) 'news_providers.Selector' has no field named 'articles_parent_container'.
Также попытался изменить мое отношение к ManyToMany (что также кажется более подходящим для моего варианта использования) и применить хак, найденный здесь: http://www.mc706.com/tip_trick_snippets/18/django-manytomany-inline-admin/ , но не повезло:/
Это должно быть довольно прямолинейно, но я боюсь, что разработчики django не обратили внимание на этот вариант использования?
Спасибо!
Provider
доSelector
. Поэтому вы можете иметь встроенные провайдеры в администраторе моделиSelector
. Однако невозможно иметьSelector
встроенных в администраторе моделиProvider
. - person Alasdair   schedule 05.02.2016