#python #django #mongodb
#python #django #mongodb
Вопрос:
Мне трудно понять, как сделать значение поля уникальным при использовании Django MongoDB.my models.у py есть модель:
class Projects(models.Model):
projectName =models.CharField(max_length = 100,unique=True)
projectManager = EmbeddedModelField('Users')
Здесь я хочу, чтобы всякий раз, когда добавляется новый экземпляр проекта, он должен иметь уникальное имя проекта.Но этот код не работает, поскольку он позволяет добавлять одно и то же значение для ProjectName и не выдает мне ошибку.Я прочитал, что можно сделать значение поля уникальным с помощью индексов в pymongo, но как мне это сделать в Django MongoDB.
Комментарии:
1. Какую базу данных вы используете? Вы добавили
unique
параметр после запускаsyncdb
?2. Я использую MongoDB с оболочкой Django MongoDB, и да, я добавил уникальный параметр перед запуском syncdb
3. Вероятно, django неправильно воспроизводит поля. Можете ли вы извлечь список индексов? оболочка mongo -> использовать <вашу базу данных> -> db.<ваша коллекция>.getIndices()
4. [ { «v»: 1, «key»: { » id»: 1 }, «ns»: «API.Users», «name»: «_id » } ]
5. Таким образом, он не создал уникальный индекс. Ну, я понятия не имею, что делать дальше.
Ответ №1:
Ответ на мой собственный вопрос заключается в том, что мне пришлось добавить unique = True для поля модели перед выполнением syncdb.Благодаря culebron.Теперь оно работает