django - Django models.py(API 结果) - 检索当前帖子以添加 api 结果
问题描述
我是 Django 新手,我遇到了一个问题。我不知道如何检索models.py 中的当前帖子。我为此尝试了不同的方法。
'QuerySet' object has no attribute 'aliments'
或没有错误,也没有从 ListAliments 添加到 Post
get_object_or_404(Post, id=kwargs['id'])
这是我的models.py
class ListAliments(models.Model):
name = models.CharField(max_length=40, unique=True)
slug = models.SlugField(editable=False)
status = models.IntegerField(choices=STATUS, default=1)
def save(self, *args,**kwargs):
if not self.slug:
self.slug = unique_slugify(self, slugify(self.name))
super(ListAliments, self).save(*args, **kwargs)
def __str__(self):
return self.name
class Post(models.Model):
title = models.CharField(max_length=190)
url_image = models.URLField(max_length=200, default=None)
aliments = models.ManyToManyField('ListAliments',blank=True, related_name='listaliments_post')
...
def save(self, *args, **kwargs):
if not self.slug:
self.slug = unique_slugify(self, slugify(self.title))
super(Post, self).save(*args, **kwargs) -> First save for Post which has not no ID
...
if self.url_image:
request = ...
response = ...
if response:
names = []
for concept in response.outputs[0].data.concepts:
current_aliments = ListAliments.objects.filter(name=concept.name)
current_post = Post.objects.filter(url_image=self.url_image) #get_object_or_404(Post, id=kwargs['id'])
if current_aliments.count()<1:
create_aliments = self.aliments.create(name=concept.name)
current_post.aliments.add(create_aliments)
else:
existed_aliments = ListAliments.objects.get(name=concept.name)
current_post.aliments.add(existed_aliments)
super().save(*args, **kwargs)
解决方案
Post.objects.filter(url_image=self.url_image)
返回QuerySet
以获取对象调用first
so Post.objects.filter(url_image=self.url_image).first()
;请注意,您可以获得None
推荐阅读
- java - Netty 使用来自池化直接 ByteBuf 的 ByteBuffer
- amazon-web-services - API Gateway 将请求转发到正确的端点
- amazon-web-services - Terraform 为创建的每个 aws_instance 创建 Route53 记录
- python - 如何在 Sphinx 中仅继承 1 个类?
- flutter - Flutter:如何使用 HttpClient 将数据发送到服务器的进度百分比
- python - 在同一数据框中创建列的副本,然后删除原始列也会删除复制的列
- reporting-services - 如何删除 SSRS 链接中的下划线?
- arrays - 如何合并MongoDB中的对象
- python - 如何在python中将服务器url连接到sqlite3
- database - GKE 上的 Odoo 无法连接外部 postgres 数据库