【发布时间】:2015-03-15 14:20:35
【问题描述】:
我使用 django1.7 和 mongoengine 并使用 RefrenceField 将用户存储在我的文档中,但不是存储名称 mongodb 而是存储 objectid。无论如何要存储名称而不是objectid。
我的模特:
class Question(Document):
user = ReferenceField(User, reverse_delete_rule=CASCADE)
title = StringField(max_length=70, required=True)
body = StringField()
tags = StringField()
date_modified = DateTimeField(default=datetime.datetime.now)
rating = IntField(default=0)
def __unicode__(self):
return self.title
def save(self, *args, **kwargs):
self.title = self.title
return super(Question, self).save(*args, **kwargs)
def get_absolute_url(self):
return reverse('view_question', args=[self.title])
一个 Json 文档示例:
{
"_id" : ObjectId("55057c867818f41c7db83888"),
"user" : ObjectId("54db3e5d7818f4253e5da0db"),
"title" : "Question1",
"body" : "<p>This is body for question 1</p>\r\n",
"tags" : "tag1",
"date_modified" : ISODate("2015-03-15T12:35:18.331Z"),
"rating" : 0
}
我的查看代码:
class new_category(CreateView):
model = Category
form_class = NewCategoryForm
success_url = reverse_lazy('registered')
def get_template_names(self):
return["new_category.html"]
def form_valid(self, form):
self.object = form.save(commit=False)
self.object.save()
return super(new_category, self).form_valid(form)
还有我的网址:
url(r'^new_question/', new_question.as_view(),name='new_question'),
我正在使用默认的 django 用户模型,但如果需要,可以更改用户模型。
任何帮助将不胜感激。在此先感谢。
【问题讨论】:
-
但这似乎是正确的行为。为什么你想要不同的东西?
-
当我必须再次使用该值时会出现问题,url中只显示对象ID,我有asked question但没有得到任何答案。 @丹尼尔罗斯曼
-
你能发布查看代码吗?
标签: python django mongodb django-models mongoengine