ich ein Modell haben zu machen, in dem ich verschiedene Jobs für eine Arbeits Anwendung darstellen müssen, zum Beispiel:Wie meine Modelle folgen DRY Prinzipien
from django.db import models
class PostFirstJobAd(models.Model):
fist_job_ad_title = models.CharField(max_length=225)
first_job_ad_description = models.TextField()
created_at = models.DateTimeField(auto_now=True)
class PostSecondJobAd(models.Model):
second_job_ad_title = models.CharField(max_length=225)
second_job_ad_description = models.TextField()
created_at = models.DateTimeField(auto_now=True)
class PostThirdJobAd(models.Model):
third_job_ad_title = models.CharField(max_length=225)
third_job_ad_description = models.TextField()
created_at = models.DateTimeField(auto_now=True)
sofort können Sie sehen, dass ich title
bin wiederholen, description
und created_at
, ändere ich nur Feldnamen, es ist nicht DRY und Code beginnt Geruch. Der Grund dafür ist, dass ich jeden Job separat in django admin
registrieren möchte, damit ich eine klare Situation innerhalb der Website-Verwaltung habe.
Ein Weg, um sie trocken zu machen, ist Abstract base classes
zu verwenden, aber ich habe ein Problem, weil aus der Dokumentation:
Dieses Modell wird dann keine Datenbanktabelle erstellen verwendet werden. Wenn es als Basisklasse für andere Modelle verwendet wird, werden stattdessen die Felder denen der untergeordneten Klasse hinzugefügt.
Was ist der richtige Ansatz in diesem Fall, kann mir jemand helfen, dies zu verstehen.
Ich habe gefragt, dass ich sechs verschiedene Jobs darstellen muss, und der Grund, warum ich sie getrennt haben möchte, ist, weil ich eine klare Situation in Admin haben möchte, möchte ich nicht, dass meine Bewerber in einem Modell bewerben, Also für jeden Job eine Anwendung, ich hoffe, Sie verstehen mich – PetarP
Überdenken Sie Ihr Design. Sie brauchen wirklich keine separaten Modelle. –