- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
添加 depth = 1 后无法正常工作
=> 模型.py 文件
class State(models.Model):
state_name = models.CharField(max_length = 30, unique=True)
def __unicode__(self):
return str(self.state_name)
class City(models.Model):
state = models.ForeignKey(State, related_name='state_city')
city_name = models.CharField(max_length = 30)
def __unicode__(self):
return str(self.city_name)
class Meta:
ordering = ('city_name',)
unique_together = ('state', 'city_name',)
class Snippet(models.Model):
created = models.DateTimeField(auto_now_add=True)
title = models.CharField(max_length=100, blank=True, default='')
code = models.TextField()
linenos = models.BooleanField(default=False)
owner = models.ForeignKey('auth.User', related_name='snippets')
state = models.ForeignKey(State,blank=True,null=True)
city = models.ManyToManyField(City)
=> serializers.py 文件
class StateSerializer(serializers.ModelSerializer):
class Meta:
model = State
class CitySerializer(serializers.ModelSerializer):
state_name = serializers.CharField(source='state.state_name', read_only=True)
class Meta:
model = City
class SnippetSerializer(serializers.ModelSerializer):
owner = serializers.ReadOnlyField(source='owner.username', read_only=True)
class Meta:
model = Snippet
fields = ('id', 'title', 'code', 'linenos', 'owner', 'state', 'city')
depth = 1
我分别在 state 和 city 添加了 ForeignKey 和 ManyToManyField 字段。它不在 SnippetSerializer 中保存值,而在 Meta Class 中添加 depth = 1(它在州和城市字段中保存 Null 值)。当我添加 depth = 1 JSON 时,它应该显示相关字段,但在添加新代码段时它无法正常工作。没有 depth = 1 它工作正常。我有一个复杂的数据库,其中的表有许多 ManyToMany 和 ForeignKey 相关字段。请给我建议,以便我可以获取 JSON 中的相关数据。
我有 djangorestframework-3.1.2 版本。我也使用过最新版本但同样的问题。请给我解决方案并提前致谢。
最佳答案
我遇到了同样的问题并设法解决了。由于问题出在 depth
上,我只是在 init
方法中更改深度值。
class SnippetSerializer(serializers.ModelSerializer):
owner = serializers.ReadOnlyField(source='owner.username', read_only=True)
class Meta:
model = Snippet
fields = ('id', 'title', 'code', 'linenos', 'owner', 'state', 'city')
depth = 1
def __init__(self, *args, **kwargs):
super(SnippetSerializer, self).__init__(*args, **kwargs)
request = self.context.get('request')
if request and request.method=='POST':
self.Meta.depth = 0
else:
self.Meta.depth = 1
在上面的代码中,我根据发出的请求类型动态更改了depth
。
但是,这是我自己找到的解决方法,我不确定这是否是最佳做法,但它只需稍作修改就可以解决问题。
关于json - depth = 1 无法正常工作,它在 Django Rest Framework 的 ManyToManyField 和 ForeignKey 字段中保存 Null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32202824/
我有一个模型,我想在其中为 manytomanyfield 的计数创建排名。只有它需要一个整数字段而不是一个 manytomany 字段。我的投票有问题__lt。 最好的做法是创建一个计算选票的 vo
假设我有两个 Django 应用程序: competitions - 将处理比赛数据 entries - 将处理与让参赛者参加比赛相关的功能 在比赛应用程序中,我有一个代表比赛部分的模型: class
在我的项目中,我有 2 个模型,它们具有相互指向的 ManyToMany 字段。在这种情况下,我有选举和候选人。这个想法是一个选举可以有多个候选人,一个候选人也可以是多个选举的一部分(一个“候选人”只
我正在使用 Django 的 ManyToManyField,当我尝试向其中添加数据时,出现以下错误: Traceback (most recent call last): File "", li
在 django 模型中我需要过滤 ManyToManyField有条件的 STATUS_CHOICES=( ('ACTIVE', 'Active'), ('INACTIVE', 'Inact
我读了documentation about many-to-many relationships和 examples .我找不到关于在何处放置 ManyToManyField 的提示。就我而言,我有
我需要创建一个有一些选项的 manytomany 字段,然后在每个选项旁边有一个额外的字段 我的模型: class Subject(models.Model): name = models.C
我有两个模型,产品和类别以及产品中的多对多字段。 类别在 ProductCreate View 中显示为键。 我需要为类别自定义小部件和字段。 我检查了 Django 源字段和小部件,但没有看到 Ma
我正在尝试在 Django 中使用 ModelForms 将内容添加到我的数据库中,其中包括一个 ManyToManyField。这是我的模型的相关部分: class Category(models.
我想在创建实例时更新字段,我尝试过 signals但对 ManyToManyField 来说似乎很复杂 class MobileCustomer(models.Model): customer
我正在尝试创建一个表示图形节点的模型。 class Node(models.model): ins = models.ManyToManyField("self", null=True, bl
我正在尝试创建一个表示图形节点的模型。 class Node(models.model): ins = models.ManyToManyField("self", null=True, bl
我有带有 M2M 字段的用户配置文件模型 class Account(models.Model): ... friends = models.ManyToManyField('self
我知道我不可能是第一个问这个问题的人,但我找不到答案,所以请不要吃掉我。 如果我有一个模型,其字段是ManyToManyField;我知道我可以在保存之前获取所选对象,但如果所选对象已更改,则这没有帮
我有一个遗留数据库,其中包含文档和作者的表格。第三个表定义了文档和作者之间的有序多对多关系,使用文档和作者的外键以及一个整数来指定给定文档的作者顺序。 使用 Django 1.1.1(或 SVN),有
我有一个这样的结构: 1. 作者 2. 预订 3.作者类型 4. 作者图书类型 一本书可以有多个作者,并且它可以在书中具有以下功能,例如:“作者”,“共同作者”,“部分”,“帮助者”等: class
以下是我的例子: models.py: class Example(models.Model): title = models.CharField(...) description =
Django ManyToManyField 在 HTML 中呈现如下内容: Question 1, Answer 1 Question 1, Answer 2 Que
如标题所述,manytomanyfield 和 through 如何出现在管理站点中? class SchoolClass(models.Model): id = models.AutoFie
我的 Django 项目中有这些模型: class Area(models.Model): name = models.CharField(max_length=100, primary_ke
我是一名优秀的程序员,十分优秀!