python - Django get() 返回了不止一个

标签 python django many-to-many

我有这个错误,我该如何解决?

get() returned more than one Event -- it returned 2!

你们能帮我理解这意味着什么吗?也许可以提前告诉我将来如何避免这个错误?

型号

class Event (models.Model):
    name = models.CharField(max_length=100)
    date = models.DateField(default='')
    dicript = models.CharField(max_length=50, default='Описание отсутствует')
    category = models.ForeignKey(Category,on_delete=models.CASCADE)
    adress = models.TextField(max_length=300)
    user = models.ForeignKey(User,related_name="creator",null=True)
    subs = models.ManyToManyField(User, related_name='subs',blank=True)

    @classmethod
    def make_sub(cls, this_user, sub_event):
        event, created = cls.objects.get_or_create(
            user=this_user
        )
        sub_event.subs.add(this_user)

观点

def cards_detail (request,pk=None):
    # if pk:
    event_detail = Event.objects.get(pk=pk)
    subs = event_detail.subs.count()

    # else:
    #     return CardsView()
    args = {'event_detail':event_detail,'subs':subs}
    return render(request,'events/cards_detail.html',args)


class CardsView (TemplateView):`
    template_name = 'events/cards.html'

    def get (self,request):
        events = Event.objects.all()
        return render(request,self.template_name,{'events':events })

def subs_to_event (request,pk=None):

    event = Event.objects.filter(pk=pk)
    Event.make_sub(request.user,event)


    return redirect('events:cards')

最佳答案

from django.core.exceptions import ObjectDoesNotExist, MultipleObjectsReturned
try:
    instance = Instance.objects.get(name=name)
except (ObjectDoesNotExist, MultipleObjectsReturned):
    pass

get() 如果找到多个对象,则引发 MultipleObjectsReturned,更多信息 here . 该错误是由 event_detail = Event.objects.get(pk=pk) 引起的,请检查您的事件 pk 是否唯一。

关于python - Django get() 返回了不止一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44620205/

相关文章:

django - 使用 Factory Boy 伪造 JSONField

Flask-SQLAlchemy 使用多个必需标签查询多对多标签

python - python3中使用置换循环形成新数组

python - 两个进程之间的JoinableQueue,两个进程有时会永远阻塞

python - 非连续单行 block 重新分配

javascript - 查询 :not selector doesn't work with style on class

python - Windows 上的导入和路径名

django - 在 django 中解析 HTTP_USER_AGENT 字符串。

mysql - Eloquent - 多对多,用户主题按用户id删除所有主题

grails - GORM多对多映射,可与其他字段结合使用