• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Klasa abstrakcyjna jako model i ForeignKey w Django

0 głosów
474 wizyt
pytanie zadane 3 sierpnia 2019 w Python przez reaktywny Nałogowiec (46,210 p.)
Witam! Utworzyłem klasę abstrakcyjną (model danych) od której dziedziczę inne klasy. Jednak Django nie pozwala mi użyć relacji ForeignKey w klasie abstrakcyjnej, dopiero w pochodnych, ale to z kolei sprawia, że tworzę masę powtarzajacego się kodu i tym samym kod nie spełnia zasady DRY.

Robię coś nie tak? Skąd takie ograniczenia?
komentarz 3 sierpnia 2019 przez adrian17 Mentor (355,220 p.)
Mówisz o `abstract = True`?

Pokażesz, jak próbujesz to zrobić z ForeignKeyem?
komentarz 3 sierpnia 2019 przez reaktywny Nałogowiec (46,210 p.)

1. Dokładnie tak

2. Robię jak zawsze i w klasie abstrakcyjne Django zgłaszało błąd (nie pamiętam treści), a w klasach dziedziczących - ForeignKey działał bez problemu.

class MyModel(AbstractModel):
    photos = models.ForeignKey(Photo,         on_delete=models.CASCADE,
    )

Mniej więcej coś takiego, jak wyżej.

Dziwne.

Tymbardziej, ze z tekstu:

https://docs.djangoproject.com/en/2.2/ref/models/fields/  (w 2/3 strony; dział: "Relationship fields")

wynika, że nie powinno być takich problemów.

komentarz 3 sierpnia 2019 przez adrian17 Mentor (355,220 p.)

zgłaszało błąd (nie pamiętam treści),

Bez reprodukcji raczej trudno pomóc :/

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 381 wizyt
0 głosów
1 odpowiedź 800 wizyt
pytanie zadane 29 kwietnia 2020 w Python przez Kubs Mądrala (5,190 p.)
0 głosów
0 odpowiedzi 141 wizyt
pytanie zadane 20 maja 2019 w Python przez gintoki996 Nowicjusz (170 p.)

93,766 zapytań

142,722 odpowiedzi

323,373 komentarzy

63,360 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...