聲明:我正在學習django,因爲我將它應用於我繼承的數據庫/ PHP應用程序。數據庫有點混亂,沒有外鍵約束和命名不一致。我不想在數據庫上觸摸或重做任何東西,因爲我根本不想與遺留應用程序進行溝通。Django Rest序列化程序:反向關係
堆棧:Python 2.7。 Django 1.5,Django Rest框架
問題是我有一個關係,那裏有一個有多個TICKER的想法。該行情表具有外鍵的想法(teaser_id),以便我們有類似
**Tickers**
id teaser_id
1 1
2 1
3 1
4 2
4 2
**Ideas**
id
1
2
我Django的生成數據庫模型,但沒有FK約束它不能正常產生的所有關係。因此,這裏是山楂的機型配置:
class Tickers(models.Model):
id = models.IntegerField(primary_key=True)
# I changed to this
teaser_id = models.ForeignKey(Idea)
# From
# teaser_id = models.IntegerField(null=True, blank=True)
ticker = models.CharField(max_length=135L, blank=True)
date_added = models.CharField(max_length=135L, blank=True)
class Meta:
db_table = 'teaser_tickers'
class Idea(models.Model):
id = models.IntegerField(primary_key=True)
industry_id = models.IntegerField()
post_type = models.CharField(max_length=45L)
class Meta:
db_table = 'idea'
這裏是我的串行
class TickerSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = myModels.Tickers
fields = (
'id'
,'teaser_id'
,'ticker'
)
class IdeaSerializer(serializers.HyperlinkedModelSerializer):
user = UserSerializer(many=False, read_only=True)
ticker = TickerSerializer(many=True, read_only=True,)
teaser = myFields.TeaserField(teaser_length=200, original_field='content')
class Meta:
model = myModels.Idea
fields = (
'id'
, 'title'
, 'date_added'
, 'user'
, 'teaser'
, 'ticker'
)
我想觀念的資源歸還代號爲子節點集。
REST請求適用於代碼是子元素的創意。所以我得到了一個例外,即股票在理念中沒有被定義。很好,但我只是在猜測如何設置這一點 - 我沉迷於文檔和源代碼 - 但希望有人能幫助我。
感謝您
啊 - 我明白了。我已經死定了在Python中正確設置我的模型,並試圖重命名字段接近他們在域中。所以在我的情況下,我更喜歡我的解決方案 - 但我會將其標記爲正確,因爲它直接回答我的問題。感謝您的幫助。 – akaphenom