在 serializer.py 中使用 create 方法后出现错误
这是我的错误:
尝试获取
opponentserializer 上的字段值时出现 AttributeErrorDialogSerializer。序列化器字段可能命名不正确,并且与tuple实例上的任何属性或键都不匹配。原始异常文本是:“元组”对象没有属性“对手”。
这是我的 serializer.py
class DialogSerializer(serializers.ModelSerializer):
"""A serializer for profile feed items."""
def create(self, validated_data):
dialog=Dialog.objects.get_or_create(**validated_data)
return dialog
class Meta:
model = Dialog
fields = ('id', 'owner','opponent')
extra_kwargs = {'owner': {'read_only': True}}
class DialogueViewSet(viewsets.ModelViewSet):
serializer_class = DialogSerializer
permission_classes = (IsAuthenticated,)
def get_queryset(self):
user=self.request.user
return Dialog.objects.filter(owner=user)
def perform_create(self, serializer):
"""Sets the user profile to the logged in user."""
serializer.save(owner=self.request.user)
# def create(self,**kwargs):
Run Code Online (Sandbox Code Playgroud) 我在创建 API 时遇到了一些问题
这是我的模型
class Education(AuditFields):
user = models.ForeignKey(User, on_delete=models.CASCADE)
school = models.CharField(max_length=255, blank=True)
field_of_study = models.CharField(max_length=255, blank=True)
start_year = models.DateField(default=datetime.now)
end_year = models.DateField(default=datetime.now)
Run Code Online (Sandbox Code Playgroud)
这是我的序列化程序:
class EducationSerializer(ModelSerializer):
class Meta:
model = Education
fields = '__all__'
Run Code Online (Sandbox Code Playgroud)
意见:
class EducationCreateView(CreateAPIView):
def get_queryset(self, *args, **kwargs):
queryset_list = Education.objects.filter(
user=self.request.user)
return queryset_list
serializer_class = EducationSerializer
def perform_create(self, serializer):
serializer.save(user=self.request.user)
Run Code Online (Sandbox Code Playgroud)
如果我发布了一些东西,它会显示以下消息
{
"user": [
"This field is required."
]
}
Run Code Online (Sandbox Code Playgroud)
如果我像这样改变我的序列化程序
class EducationSerializer(ModelSerializer):
class Meta:
model = Education
fields = '__all__'
extra_kwargs = {'user': {'required': …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 Airflow 的 MysqlOperator
导入时
从airflow.providers.mysql.operators.mysql导入MySqlOperator
我收到以下错误
没有名为“airflow.providers.mysql”的模块
我面临一个改变以下结构的问题.....
这是我得到的结构
{
"labels": [
"List A",
"List B",
"List C",
"List D"
],
"data": [
19,
25,
30,
32
],
"colors": [
"#e15759",
"#f28e2b",
"#76b7b2",
"#4e79a7"
],
}
Run Code Online (Sandbox Code Playgroud)
但是我想把下面的数据改成下面的方法
{
"category": "List D",
"value": 32,
"colors": "#e15759"
},
{
"category": "List C",
"value": 25
"colors": "#f28e2b"
},
{
"category": "List B",
"value": 30,
"colors": "#76b7b2"
},
{
"category": "List A",
"value": 19,
"colors" : "#4e79a7"
}
Run Code Online (Sandbox Code Playgroud)
这是我的代码
class AbcListAPI(APIView):
def get(self, request, format=None):
a = data_fuction()
return Response(a)
Run Code Online (Sandbox Code Playgroud)
在这段代码中,我从在我的代码的另一部分使用的函数 …