![](/img/trans.png)
[英]Django: presenting in template an average of a foreign key model specific field
[英]Django return specific field from model as foreign key
我正在Django的models.py中創建一個類。 當我創建第二堂課時,我從第一堂課獲得了外鍵。 鍵是“ 1”或“ 2”或...
我想知道您是否可以將Django設置為使用特定字段作為鍵。
例如:
class Customer(models.Model):
name = models.CharField(max_length=64)
myid = models.CharField(max_length=64)
class Setting(models.Model):
owner = models.ForeignKey(Customer)
...
那我有個看法
def getsetting(request):
response = serializers.serialize('json', Setting.objects.all())
return HttpResponse(response, content_type='json')
返回的json顯示“ 1”,“ 2”,...作為字段“所有者”的鍵。
所以我的問題是,是否可以使用“名稱”或“ myid”作為外鍵? 還是有一種簡單的方法來覆蓋json中的這些字段?
謝謝!
“如果要指定自定義主鍵,只需在其中一個字段上指定primary_key = True即可。” https://docs.djangoproject.com/en/1.4/topics/db/models/#automatic-primary-key-fields
因此,您可以更改您的客戶類:
class Customer(models.Model):
name = models.CharField(max_length=64)
myid = models.CharField(primary_key=True, max_length=64)
看一下使用自然鍵的序列化。 您可以在此處閱讀官方文檔: https : //docs.djangoproject.com/en/1.7/topics/serialization/#natural-keys
這很簡單,只需向您的類添加一個方法:
class Customer(models.Model):
name = models.CharField(max_length=64)
myid = models.CharField(max_length=64)
def natural_key(self):
return (self.myid, )
然后使用use_natural_foreign_keys=True
進行序列化:
def getsetting(request):
response = serializers.serialize('json', Setting.objects.all(),
use_natural_foreign_keys=True)
return HttpResponse(response, content_type='json')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.