簡體   English   中英

如何在Django models.py中更新外鍵字段?

[英]How to update a foreign key field in Django models.py?

以下是來源: https//docs.djangoproject.com/en/1.8/topics/db/queries/

首先,我們來看看models.py字段:

from django.db import models

class Blog(models.Model):
    name = models.CharField(max_length=100)
    tagline = models.TextField()

    def __str__(self):              # __unicode__ on Python 2
        return self.name

class Author(models.Model):
    name = models.CharField(max_length=50)
    email = models.EmailField()

    def __str__(self):              # __unicode__ on Python 2
        return self.name

class Entry(models.Model):
    blog = models.ForeignKey(Blog)
    headline = models.CharField(max_length=255)
    body_text = models.TextField()
    pub_date = models.DateField()
    mod_date = models.DateField()
    authors = models.ManyToManyField(Author)
    n_comments = models.IntegerField()
    n_pingbacks = models.IntegerField()
    rating = models.IntegerField()

    def __str__(self):              # __unicode__ on Python 2
        return self.headline

這是如何創建Blog類型的行或對象:

>>> from blog.models import Blog
>>> b = Blog(name='Beatles Blog', tagline='All the latest Beatles news.')
>>> b.save()

我的問題是如何使用我在Blog類中創建的條目更新Entry對象(存儲與Blog相關的外鍵)的博客列/屬性?

首先獲取Blog對象,然后將其傳遞給Entry

b=Blog.objects.get(name='Beatles Blog', tagline='All the latest Beatles news.')

e=Entry(blog=b,headline='some headline',body_text='text here',....)
e.save()

您可以使用文檔中的解決方案。 或簡答:

b = Blog.objects.get(pk=1)
Entry.objects.filter(pk=17).update(blog=b)
  1. 需要選擇要更新的行/行
  2. 使用功能update

暫無
暫無

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

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