Python中文
首页
教程
问答
标签
搜索
登录
注册
如果在Djang中将指定为ForeignKey,则无法发布指定特定id的条目
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我有两个模型,<code>Book</code>和<code>ReadBy</code>,如中所述型号.py地址:</p> <pre><code>class Book(models.Model): created = models.DateTimeField(auto_now_add=True) owner = models.ForeignKey(MyUser) class ReadBy(models.Model): created = models.DateTimeField(auto_now_add=True) owner = models.ForeignKey(MyUser) book = models.ForeignKey(Book) </code></pre> <p>你知道吗视图.py地址:</p> <pre><code>class BookViewSet(viewsets.ModelViewSet): queryset = Book.objects.all() serializer_class = BookSerializer permission_classes = (permissions.IsAuthenticatedOrReadOnly,) def pre_save(self, obj): obj.owner = self.request.user class ReadByViewSet(viewsets.ModelViewSet): queryset = ReadBy.objects.all() serializer_class = ReadBySerializer permission_classes = (permissions.IsAuthenticatedOrReadOnly,) def pre_save(self, obj): obj.owner = self.request.user </code></pre> <p>你知道吗序列化程序.py地址:</p> <pre><code>class BookSerializer(serializers.ModelSerializer): readby = serializers.SerializerMethodField('get_ready_by') def get_read_by(self, obj): user = self.context['request'].user book = obj return ReadBy.objects.filter(book=book, owner=user).exists() class Meta: model = Book fields = ('id', 'created', 'owner', 'readby') class ReadBySerializer(serializers.ModelSerializer): owner = serializers.Field(source='owner.id') book = serializers.Field(source='book.id') class Meta: model = ReadBy fields = ('id', 'created', 'owner', 'book') </code></pre> <p>书是<code>ReadBy</code>中的<code>ForeignKey</code>。原因是我想通过将BookSerializer中的<code>readby</code>字段定义为true或false来查看是否已经阅读了这本书。你知道吗</p> <p>现在,当我尝试发布ReadBy项目时,我无法显式设置图书id,即使我尝试,我仍然会得到相同的错误:</p> <blockquote> <p>"Column 'book_id' cannot be null"</p> </blockquote> <p>我需要知道的是如何显式地指定图书id,以便能够“阅读”一本书。你知道吗</p> <p>谢谢。你知道吗</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<pre><code>class ReadBy(models.Model): ... snip ... book = models.ForeignKey(Book, null=True, blank=True) </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
无法使用Django/mongoengine连接到MongoDB(身份验证失败)
8 回答
无法使用Django\u mssql\u后端迁移到外部hos
3 回答
无法使用Django&Python3.4连接到MySql
7 回答
无法使用Django+nginx上载媒体文件
5 回答
无法使用Django1.6导入名称模式
2 回答
无法使用Django1.7和mongodb登录管理站点
6 回答
无法使用Djangoadmin创建项目,进程使用了错误的路径,因为我事先安装了错误的Python
3 回答
无法使用Djangockedi验证CBV中的字段
2 回答
无法使用Djangocketditor上载图像(错误400)
2 回答
无法使用Djangocron进行函数调用
8 回答
无法使用Djangofiler djang上载文件
10 回答
无法使用Djangokronos
3 回答
无法使用Djangomssql provid
8 回答
无法使用Djangomssql连接到带有Django 1.11的MS SQL Server 2016
5 回答
无法使用Djangomssq迁移Django数据库
10 回答
无法使用Djangonox创建用户
4 回答
无法使用Djangopyodb从Django查询SQL Server
3 回答
无法使用Djangopython3ldap连接到ldap
2 回答
无法使用Djangoredis连接到redis
4 回答
无法使用Django中的FK创建新表
5 回答