我的模型文件应该保留在Django中的不同包或相同的模型文件中吗?

时间:2014-07-16 00:34:51

标签: python django rest django-models django-rest-framework

注意:我读了Choosing between Stack Overflow and Software Engineering并且从我的结论开始,因为这篇文章包含了代码,我认为它属于stackoverflow而不是程序员。

嗨,我在Django中构建了一个应用程序,而且我对Django很新。我已经阅读了Django教程和Django-Rest-Framework教程。

我的问题是我应该如何构建我的应用程序的这一部分。现在我正在尝试为我正在编写的Android应用程序构建一个RESTful api。

我读过这个:
Why does django enforce all model classes to be in models.py?

models.py getting huge, what is the best way to break it up?

让我的项目进入透视:

这是我的models.py的样子:(注意这些不是我的实际模型,它们只是我为保持代码更简洁所做的一个例子)

class Company(models.Model):
    name = models.charField(max_length=100)
class Department(models.Model):
    company = models.ForeignKey(Company)
    employees_count = models.IntegerField(default=1)
    name = models.charField(max_length=100)
class Employee(models.Model):
    department = models.ForeignKey(Department)
    name = models.charField(max_length=100)
    age = models.IntegerField(default=0)

每个相应的类都可以通过API访问自己的函数。

在我的项目介绍之后我的问题是..公司,部门和员工是否都属于不同的包,因为它们是独立的实体?或者它们是否都属于一个模型文件?最后,他们应该拥有自己的REST类,如下所述:http://www.django-rest-framework.org/tutorial/3-class-based-views#rewriting-our-api-using-class-based-views

1 个答案:

答案 0 :(得分:1)

Django对这两种方法都很好。在Python中,与其他语言不同,您可以在同一文件中放置多个类定义。通常,Django应用程序将其所有模型放在同一个文件中,如果它不会太长,说2-3个屏幕。

任何更长的时间,它们通常放在models模块中并分成不同的文件。需要在第一个链接中提到的__init__.py中提及每个模型。在Django 1.7中,最后一个app_label"技巧"提到不再需要了。