管理与模型间模型的Django应用程序



对于django来说,最好的做法显然是只有1件事可以做1件事,然后做1件事...因此,它们可以"插入并播放"到其他项目中

考虑我有一个库应用程序,并且有3个应用程序。bookmemberloan。他们每个人都有自己的模型。

因此,在loan中说forms.py,我需要做类似的事情:

from book.models import Book
from member.models import Model
from .models import Loan
#Other key imports
class CreateLoanForm(forms.Form):
    # Some fields
    def save(self):
        # Retrieve fields
        selected_book = self.cleaned_data.get('selected_book')
        selected_member = self.cleaned_data.get('selected_member')
        new_loan = Loan(
            book=Book.objects.get(id=selected_book),
            member=Member.objects.get(id=selected_member),
            date_start=self.cleaned_data.get('date_start'),
            date_end=self.cleaned_data.get('date_end')
        )

我的问题是:

  1. 上述from book.models ...难道不违反插入应用程序的能力?
  2. 是否有更好的方式导入这些模型?这样做时我会违反最佳实践吗?

对于"一个应用程序要做一件事,正确的一件事"并不意味着它只有一个模型。如果您正在编写库应用程序,则应在同一应用中具有bookmemberloan模型。

在您问题的背景下,使用应用程序B中使用模型A中的一种可能的做法是将模型定义为App B中的可插入设置。例如,请参见auth模块在此处做什么:https://docs.djangoproject.com/en/1.9/topics/auth/customizing/#substituting-a-custom-user-model

相关内容

  • 没有找到相关文章

最新更新