【发布时间】:2017-05-15 09:43:04
【问题描述】:
MultipleObjectsReturned at /user/(对象名称)/ 异常类型:MultipleObjectsReturned
请求方法:GET
异常值:get() 返回了多个 Canvas -- 它返回了 2 个!
异常位置:C:\Users\user\AppData\Local\Programs\Python\Python35-32\lib\site-packages\django\db\models\query.py in get,第 389 行
多个对象同名,但一个用户只能有一个唯一的对象名称。
每当我创建另一个具有相同名称的对象时,我都会收到此错误(MultipleObjectsReturned)。我想允许每个用户创建一个唯一的对象名称。
例如:user1 可以有一个唯一的对象名称 (test),而 user2 也可以有一个唯一的对象名称 (test)。
class Object(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL, default=1)
object_name = models.CharField(
max_length=100,
validators=[
# validate_canvas_title,
RegexValidator(
regex=CANVAS_REGEX,
message='Canvas must only contain Alpahnumeric characters',
code='invalid_canvas_title'
)],
)
slug = models.SlugField(max_length=100, blank=True)
class Meta:
unique_together = ['user', 'object_name']
查看
def canvasView(request, username=None, slug=None):
user = User.objects.get(username__iexact=username)
object = get_object_or_404(Object, slug__iexact=slug)
template = "pages/object.html"
context = {
'user' : user,
'object': object,
}
return render(request, template, context)
【问题讨论】:
标签: django django-models django-views