簡體   English   中英

Django中從一個app到另一個app的外鍵

[英]Foreign key from one app into another in Django

我想知道是否可以在Django中的models.py文件中定義一個外鍵,它是對另一個應用程序中的表的引用?

換句話說,我有兩個應用程序,稱為cf和profiles,在cf / models.py中我有(除其他外):

class Movie(models.Model):
    title = models.CharField(max_length=255)

在profiles / models.py中我希望:

class MovieProperty(models.Model):
    movie = models.ForeignKey(Movie)

但我無法讓它發揮作用。 我試過了:

    movie = models.ForeignKey(cf.Movie)

我嘗試在models.py的開頭導入cf.Movie,但我總是遇到錯誤,例如:

NameError: name 'User' is not defined

我是否通過嘗試以這種方式將兩個應用程序綁定在一起來打破規則,或者我的語法錯誤?

根據文檔,你的第二次嘗試應該工作:

要引用另一個應用程序中定義的模型,您必須明確指定應用程序標簽。 例如,如果上面的制造商模型在另一個名為production的應用程序中定義,則需要使用:

class Car(models.Model):
    manufacturer = models.ForeignKey('production.Manufacturer')

你試過把它放到引號中嗎?

也可以通過類本身:

from django.db import models
from production import models as production_models

class Car(models.Model):
    manufacturer = models.ForeignKey(production_models.Manufacturer)

好的 - 我已經弄清楚了。 你可以這樣做,你只需要使用正確的import語法。 正確的語法是:

from prototype.cf.models import Movie

我的錯誤是沒有指定該行的.models部分。 D'哦!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM