[英]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.