小编JBa*_*cía的帖子

如何为带有翻译的 django Rest 框架模型创建自定义序列化器

我正在使用 django-rest-framework,并且我有一个模型“TextElement”,其属性“text”是使用 django-modeltranslation 翻译的。我需要创建一个通用序列化程序,它接受翻译的字段并作为数据返回字典,其中语言作为键,翻译的属性作为值。例子:

text_element = TextElement.objects.get(id=1)
text_element_serializer = TextElementSerializer(text_element)
text_element_serializer.data
>> {"text": {"en": "Something", "es": "Algo"}, "other_attribute": "Something else"}
Run Code Online (Sandbox Code Playgroud)

我可以使用以下序列化器来做到这一点:

class TextElementSerializer(serializer.ModelSerializer):
    text = serializer.SerializerMethodField()

    class Meta:
        model = TextElement
        fields = ('text', 'other_attribute')

    def get_text(self, instance):
        return {
            'en': instance.text_en,
            'es': instance.text_es
        }

Run Code Online (Sandbox Code Playgroud)

但我想知道是否可以创建一个通用序列化程序,自动检查“字段”中的所有翻译属性,使用 settings.LANGUAGES 中的可用语言并返回相同的数据结构。

提前致谢!

django django-rest-framework django-modeltranslation

5
推荐指数
0
解决办法
615
查看次数

更新bulk_update中的auto_now字段

我正在使用 Django 2.2 并且我有一个模型auto_now modification_datetime字段的模型,我需要在bulk_update执行期间/之后仅针对真正更新的受影响的注册表进行更新。

是否可以auto_now通过执行仅更新受影响记录上的日期时间模型字段bulk_update

django django-models bulkupdate

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

AWS SQS:可见性超时到期后,FIFO 队列中的消息顺序是什么?

在 AWS SQS FIFO 的队列中;当已读消息的可见性超时时,消息将位于队列的哪个位置?

例如:

  • 我在队列中有这些消息:'[A, B, C, D]'(顺序:A first in)
  • 我从队列中读取了一条消息,因此收到消息“A”
  • 消息“A”的可见性超时到期,消费者可以再次使用它

消息的新顺序是什么?

  • a) [A、B、C、D]
  • b) [B、C、D、A]

timeout message-queue fifo amazon-sqs amazon-web-services

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