Django koşullu foreignkey field

Merhaba django da modele tanımladığım foreinkey lere iki farklı sınıf bağlanabilsin istiyorum. bunu yapabilir miyim? Daha doğrusu genericforeinkey kullanmam gerekiyormuş ancak nasıl kullanacağımı anlayamadım. bununla ilgili ayrıntılı bir örnek paylaşabilir misiniz.
Aşağıdaki kodu burada yazıyorum. önemsiz olduğunu düşündüğüm şeyleri yazmadım.

Öncelikle şu şekilde sınıflarım var:

class Base(models.Model):
     field1
     field2

    class Meta:
        abstract = True

    @abc.abstractproperty
    def property1(self):
        pass

    @abc.abstractproperty
    def property2(self):
        pass


class Sub1(Base):
     field3

    @property
    def property1(self):
        pass

    @property
    def property2(self):
        pass


class Sub2(Base):
     field4

    @property
    def property1(self):
        pass

    @property
    def property2(self):
        pass

Bir de şu şekilde sınıfım var;

class Caller(models.Model)
    option_field = (1 veya 2)
    foreign_field = (Sub1 veya Sub2)

obtion_field de seçenek olacak. orada yaptığım seçime göre de foreign_field e hangi sınıfı seçebileceğim belli olacak.

Aslında kaynaklar var ama ingilizcem yetmedi. :frowning:

Suna bakmak isteyebilirsin:

1 Beğeni

Bakmak istedim ve baktım ancak aradığım şey “many to many” ilişkisi değil.
one to many” yani normal “foreignkey” ilişkisi olacak; ancak iki farklı sınıf seçilebilecek.
Yapmak istediğim şeye farklı bir örnek: diyelimki “öğretmen” ve “öğrenci” sınıflarımız var. bir de “kalem” adında bir sınıfımız var ve “kalem” sınıfının “sahibi” şeklinde bir alanı (field) var. Bu kalemin sahibi öğrenci veya öğretmen olabilir. İki sınıftan da seçim yapılabilir.

Benim projemde de DatumDb ve DatumAPI adında iki sınıfım var. bunlar biri liste diğeri pandas dataframe olan iki property oluşturuyor. Bir tanesi veritabanından diğeri api den veri çektiği için ikisini birleştiremem. Birleştirirsem de çok hantal bir şey olur.

'Generic foreign key’i şuraya bakarak yaptım:
https://simpleisbetterthancomplex.com/tutorial/2016/10/13/how-to-use-generic-relations.html
serialize biraz sıkıntı oluşturdu onu da üçüncü taraf paketle çözdüm
https://github.com/LilyFoote/rest-framework-generic-relations
Şimdilik bu konuda başka sıkıntı yok gibi görünüyor.

1 Beğeni