Django model naming convention

前端 未结 4 827
轻奢々
轻奢々 2021-02-02 09:45

What is the preferred naming convention for Django model classes?

相关标签:
4条回答
  • 2021-02-02 10:22

    Django models are just Python classes, so the Python naming conventions detailed in PEP-8 apply.

    For example:

    1. Person
    2. Category
    3. ZipCode

    If Django fails to pluralize the class name properly when creating the corresponding table, you can easily override the pluralization by setting a custom verbose_name_plural field in an inner META class. For example:

    class Story(models.Model):
        ...
    
        class Meta:
            verbose_name_plural = "stories"
    
    0 讨论(0)
  • 2021-02-02 10:34

    In adition, when you need related objects for a Model of more than one word, you can use the _set attribute. Example:

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

    Then, related objects will be:

    plant = Plant.object.get(id=1)
    process_rooms = plant.processroom_set.all
    
    0 讨论(0)
  • 2021-02-02 10:35

    As far as I know, the idea is that the class name should be singular and should use SentenceCase with no spaces. So you'd have names like:

    Person
    TelephoneNumber
    

    Then the Django admin tool knows how to pluralise them. Doesn't work so nicely for names like:

    Category
    

    which gets pluralised as Categorys, but there we go...

    Apart from that, just give it a name that means something to you and succinctly sums up what the class is meant to represent.

    Ben

    0 讨论(0)
  • 2021-02-02 10:36

    In most of programming languages, people prefer give a singular names to the objects/models because these models are also represented by tables in your database system. The minimalism is a good choice everytime to avoid some meaning conflicts in the future.

    To exemplify; https://stackoverflow.com/a/5841297/2643226

    0 讨论(0)
提交回复
热议问题