38 Stimmen

Django-Modell-Benennungskonvention

Was ist die bevorzugte Namenskonvention für Django-Modellklassen?

0 Stimmen

Benennen Sie es einfach, damit Sie wissen, wofür das Modell steht

58voto

Baishampayan Ghose Punkte 18730

Django-Modelle sind lediglich Python-Klassen, so dass die Python-Namenskonventionen, die in PEP-8 anwenden.

Zum Beispiel:

  1. Person
  2. Kategorie
  3. Postleitzahl

Wenn Django den Klassennamen bei der Erstellung der entsprechenden Tabelle nicht richtig pluralisiert, können Sie die Pluralisierung einfach außer Kraft setzen, indem Sie eine eigene wortreicher_name_plural Feld in einer inneren META-Klasse. Zum Beispiel:

class Story(models.Model):
    ...

    class Meta:
        verbose_name_plural = "stories"

0 Stimmen

Welchen Pluralnamen Django für den Modellnamen erstellen wird Person ?

0 Stimmen

Ich glaube, der Variablenname ist verbose_name_plural, wie in der Dokumentation angegeben. docs.djangoproject.com/de/dev/topics/db/models/#meta-options

0 Stimmen

In Pep-8 keine Beweise dafür gefunden hat

5voto

Ben Punkte 63046

Soweit ich weiß, ist die Idee, dass der Klassenname Singular sein sollte und sollte SentenceCase mit keine Leerzeichen verwenden. Sie hätten also Namen wie:

Person
TelephoneNumber

Dann weiß das Django-Admin-Tool, wie man sie pluralisiert. Funktioniert nicht so gut für Namen wie:

Category

die im Plural als Kategorien bezeichnet werden, aber das war's auch schon...

Ansonsten geben Sie der Klasse einfach einen Namen, der Ihnen etwas bedeutet und der kurz und bündig zusammenfasst, was die Klasse darstellen soll.

Ben

2 Stimmen

Siehe die obige Antwort von ghoseb über die korrekte Pluralisierung von etwas wie Kategorien.

2voto

Mirac Punkte 79

In den meisten Programmiersprachen bevorzugt man es, den Objekten/Modellen einen eindeutigen Namen zu geben, da diese Modelle auch durch Tabellen in Ihrem Datenbanksystem dargestellt werden. Der Minimalismus ist immer eine gute Wahl, um Bedeutungskonflikte in der Zukunft zu vermeiden.

Um ein Beispiel zu nennen; https://stackoverflow.com/a/5841297/2643226

0voto

jplattus Punkte 191

Wenn Sie außerdem zusammenhängende Objekte für ein Modell mit mehr als einem Wort benötigen, können Sie das Attribut _set verwenden. Beispiel:

class ProcessRoom(models.Model):
...
    plant = models.ForeignKey("Plant", verbose_name='planta', on_delete=models.CASCADE)

Dann werden verwandte Objekte sein:

plant = Plant.object.get(id=1)
process_rooms = plant.processroom_set.all

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X