小编Jav*_*vad的帖子

如何使用 Djangorestframework 中的 UpdateAPIView 更新模型中的单个字段?

我正在学习通用视图并创建一些 API。如何更新字段:mobile来自型号Contacts

我想从 URL 获取用户 ID (mobile/update/user_id),但是在创建查询集时它不起作用。我想做一些像这里提到的那样的事情:

#queryset = Contacts.objects.filter(id=Usertab.objects.filter(id=self.kwargs['id']).first().contact.id))
Run Code Online (Sandbox Code Playgroud)
class UpdateMobileAPIView(generics.UpdateAPIView):
    queryset = Contacts.objects.filter(pk=Usertab.objects.all())

    serializer_class = ContactsSerializer
    lookup_field = 'pk'

    def update(self,instance,request):
        instance = self.get_object()
        serializer= self.get_serializer(instance,data=request.data,partial=True)
        if serializer.is_valid():
            serializer.save()
            return Response({"message":"mobile number updated successfully"})

        else:
            return Response({"message":"failed"})

Run Code Online (Sandbox Code Playgroud)

这些是模型

class Contacts(models.Model):

    mobile = models.IntegerField(null=False)
    Landline = models.IntegerField(null=False)
    whats_app = models.IntegerField(null=False)


class Usertab(models.Model):

    username = models.CharField(max_length=255,null=False,blank=False)
    address = models.CharField(max_length=255,null=False,blank=False)
    pin_code = models.CharField(max_length=255,null=False,blank=False)
    contact = models.ForeignKey(Contacts,related_name="contacts_user")


class Email(models.Model):

    user = models.ForeignKey(Usertab,related_name="user_email")
    email …
Run Code Online (Sandbox Code Playgroud)

django django-generic-views python-3.x django-serializer django-rest-framework

3
推荐指数
1
解决办法
1万
查看次数

Django REST Framework(AttributeError:尝试在序列化器“”上获取字段“”的值时出现 AttributeError)

Got AttributeError当尝试获取Firstname 序列化器中字段的值时NameSerializer

序列化程序字段可能命名不正确,并且与QuerySet实例上的任何属性或键不匹配。

原始异常文本是:

'QuerySet' object has no attribute Firstname.
Run Code Online (Sandbox Code Playgroud)

错误: 错误

序列化器.py

'QuerySet' object has no attribute Firstname.
Run Code Online (Sandbox Code Playgroud)

模型.py

from rest_framework import serializers
from .models import Name, ForeName

class NameSerializer(serializers.ModelSerializer):
    class Meta:
        model = Name
        fields = '__all__'

class ForeNameSerializer(serializers.ModelSerializer):
    forenames = NameSerializer(many=True, read_only=True)
    class Meta:
        model = ForeName
        fields= '__all__'
Run Code Online (Sandbox Code Playgroud)

视图.py

from django.db import models
import uuid

# create your models here
class ForeName(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    Forename = models.CharField(max_length=30) …
Run Code Online (Sandbox Code Playgroud)

python django django-models django-views django-rest-framework

3
推荐指数
1
解决办法
3903
查看次数

如何重命名列表项以使它们都是唯一的?

我有一个这样的列表:

lista=['a','b','b','c','d','e','c','e','b','b']
Run Code Online (Sandbox Code Playgroud)

请注意,该列表将从其他来源填写,因此我不知道项目或数量

我需要的是这个结果:

['a','b','b_1','c','d','e','c_1','e_1','b_2','b_3']
Run Code Online (Sandbox Code Playgroud)

我尝试使用递归检查,但它不能保证检测到所有重复情况......提前致谢!

python list

2
推荐指数
1
解决办法
149
查看次数

未找到 Python 模块“pyLDAvis.gensim”

我在 jupyter 笔记本中安装了pyLDAvis模块gensim,当我尝试使用"pyLDAvis.gensim"模块时,出现错误:

No "module named 'pyLDAvis.gensim'"
Run Code Online (Sandbox Code Playgroud)

请查找下面的详细错误:

ModuleNotFoundError                       Traceback (most recent call last)
<ipython-input-5-ef16c68ef524> in <module>
     12 # libraries for visualization
     13 import pyLDAvis
---> 14 import pyLDAvis.gensim
     

ModuleNotFoundError: No module named 'pyLDAvis.gensim'
Run Code Online (Sandbox Code Playgroud)

知道为什么即使在安装了这些单独的模块后我仍然收到此错误

如果需要任何其他信息,请告诉我。

提前致谢。

python python-module python-3.x jupyter-notebook

1
推荐指数
1
解决办法
3835
查看次数