post 的 django-ninja 端点
django-ninja endpoint for post
我是编程初学者,我在我的项目中使用Django + Django ninja。
现在停留在创建端点的时刻
我正在尝试制作一个过滤器以向文章添加标签并检查标签是否存在。这是我目前正在处理的一段代码:
@router.post('/article', response={200: schema.ArticleOut, 500: schema.Error})
def create_article(request, tags_id: List[int], payload: schema.ArticleIn):
try:
for tag in tags_id:
if tag > 0:
qs = models.Article.objects.create(**payload.dict())
qs.save()
current_article = get_object_or_404(models.Article, pk=qs.id)
e = models.Tag.objects.get(pk=tag)
current_article.tags.add(e)
return 200, qs
else:
return 500, {'msg': 'No Tags'}
except:
return 500, {'msg': 'Not'}
告诉我,在请求中这样做是否有意义,如果是的话,如何最好地实现它?也许还有其他方法?
我的兄弟帮助了我,他提出了这个解决方案:
def create_article(request, tags_id: List[int], payload: schema.ArticleIn):
try:
tags = models.Tag.objects.filter(pk__in=tags_id)
qs = models.Article.objects.create(**payload.dict())
qs.save()
qs.tags.set(tags)
return 200, qs
except Exception as e:
return 500, {'msg': f'Not: {str(e)}'}
我是编程初学者,我在我的项目中使用Django + Django ninja。 现在停留在创建端点的时刻 我正在尝试制作一个过滤器以向文章添加标签并检查标签是否存在。这是我目前正在处理的一段代码:
@router.post('/article', response={200: schema.ArticleOut, 500: schema.Error})
def create_article(request, tags_id: List[int], payload: schema.ArticleIn):
try:
for tag in tags_id:
if tag > 0:
qs = models.Article.objects.create(**payload.dict())
qs.save()
current_article = get_object_or_404(models.Article, pk=qs.id)
e = models.Tag.objects.get(pk=tag)
current_article.tags.add(e)
return 200, qs
else:
return 500, {'msg': 'No Tags'}
except:
return 500, {'msg': 'Not'}
告诉我,在请求中这样做是否有意义,如果是的话,如何最好地实现它?也许还有其他方法?
我的兄弟帮助了我,他提出了这个解决方案:
def create_article(request, tags_id: List[int], payload: schema.ArticleIn):
try:
tags = models.Tag.objects.filter(pk__in=tags_id)
qs = models.Article.objects.create(**payload.dict())
qs.save()
qs.tags.set(tags)
return 200, qs
except Exception as e:
return 500, {'msg': f'Not: {str(e)}'}