MongoEngine在保存时不检查/保存唯一索引

时间:2014-12-10 15:37:47

标签: python django mongodb django-rest-framework mongoengine

我遇到的问题是,当我使用相同的标签在帖子上保存新的常见问题解答时,尽管标签是唯一的,但它会保存。我一般都是django和python的新手,所以我想知道我的代码是否有问题,或者我应该向mongoengine或其他软件包提交一个bug。

任何想法?

目标:

  • 创建一个常见问题解答系统,其中包含按标记主题分组的唯一标记。
  • 标签必须是唯一的。
  • 应该能够列出完整的常见问题列表,而不是按主题分组。
  • 常见问题列表应该可以按主题组列出。

库:

  • Python 3.4
  • Django 1.7
  • Django Rest Framework 2.4
  • Mongo Engine 8.7
  • PyMongo 2.7.2
  • Django Rest Framework Mmongoengine 1.5.3

型号:

class Faq(Document):
    question = StringField(db_field='faq', required=True, unique=True)
    tag = StringField()
    answers = StringField()

class Section(Document):
    section = StringField(db_field='section', required=True)
    tag = StringField(db_field='tag', required=True, unique=True)
    faqs = ListField(ReferenceField('Faq'))

串行器:

class FaqSerializer(serializers.MongoEngineModelSerializer):
    class Meta:
        model = Faq


class SectionSerializer(serializers.MongoEngineModelSerializer):
    class Meta:
        model = Section

查看:

class SectionDetail(APIView):
    def post(self, request, format=None):
        """
        Creates a single Section.
        """
        serializer = SectionSerializer(data=request.DATA)

        if serializer.is_valid() is False:
            return Response(
                data=serializer.errors,
                status=status.HTTP_500_INTERNAL_SERVER_ERROR
            )

        serializer.save()
        return Response(
            data=serializer.data,
            status=status.HTTP_200_OK
        )

0 个答案:

没有答案