Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python django中的Like按钮在django中工作不正常_Python_Django_Django Models_Django Templates_Django Views - Fatal编程技术网

Python django中的Like按钮在django中工作不正常

Python django中的Like按钮在django中工作不正常,python,django,django-models,django-templates,django-views,Python,Django,Django Models,Django Templates,Django Views,我已经添加了喜欢和不喜欢按钮的歌曲后,当喜欢的对象没有被创建,如果一些点击喜欢它是显示初始错误,如果喜欢的对象已经存在,那么它不会渲染到模板 models.py models.py中的代码 class Song(models.Model): song_title = models.CharField(max_length=25) album = models.ForeignKey(Album, related_name='album_name', on_delete=models

我已经添加了喜欢和不喜欢按钮的歌曲后,当喜欢的对象没有被创建,如果一些点击喜欢它是显示初始错误,如果喜欢的对象已经存在,那么它不会渲染到模板

models.py models.py中的代码

class Song(models.Model):
    song_title = models.CharField(max_length=25)
    album = models.ForeignKey(Album, related_name='album_name', on_delete=models.CASCADE, blank=True)
    singer = models.ManyToManyField(Singer, blank=True)
    language = models.CharField(max_length=25)

class VoteManager(models.Manager):

    def get_vote_or_unsaved_blank_vote(self,song,user):
        try:
            return Vote.objects.get(song=song,user=user)
        except ObjectDoesNotExist:
            return Vote(song=song,user=user)

class Vote(models.Model):
    UP = 1
    DOWN = -1
    VALUE_CHOICE = ((UP, "
song
and
user
fields are required. So you have to give
song
and
user
while creating
Vote
.

here is full code::
class SongVoteCreateView(View):
    form_class = SongVoteForm
    context = {}
    def post(self,request,pk=None,song_id=None):
        song_obj = Song.objects.get(pk=song_id)
        vote_obj,created = Vote.objects.get_or_create(song = song_obj, user = request.user) 
        vote_form = SongVoteForm(request.POST, instance=vote_obj)
        if vote_form.is_valid():
            vote_form.save()
            return redirect('/album/')
class歌曲(models.Model):
歌曲标题=models.CharField(最大长度=25)
album=models.ForeignKey(album,related_name='album_name',on_delete=models.CASCADE,blank=True)
singer=models.ManyToManyField(singer,blank=True)
语言=models.CharField(最大长度=25)
类VoteManager(models.Manager):
def get_vote_或未保存_blank_vote(自我、歌曲、用户):
尝试:
返回Vote.objects.get(歌曲=歌曲,用户=用户)
除ObjectDoesNotExist外:
返回投票(歌曲=歌曲,用户=用户)
集体投票(models.Model):
UP=1
向下=-1

VALUE_CHOICE=((向上,
歌曲
用户
字段是必需的。因此,在创建
投票
时,您必须给出
歌曲
用户

这是完整的代码::
class SongVoteCreateView(视图):
form_class=SongVoteForm
上下文={}
def post(自我、请求、主键=无、歌曲id=无):
song\u obj=song.objects.get(pk=song\u id)
投票对象,created=vote.objects.get\u或创建(song=song\u obj,user=request.user)
投票形式=SongVoteForm(request.POST,实例=投票对象)
如果投票形式有效():
投票表格保存()
返回重定向(“/album/”)

同样在
VoteManager

返回投票(歌曲=歌曲,用户=用户)

不会创建投票,而是必须使用


return Vote.objects.create(song=song,user=user)
song
user
字段是必需的。因此,在创建
Vote
时,必须给出
song
user

这是完整的代码::
class SongVoteCreateView(视图):
form_class=SongVoteForm
上下文={}
def post(自我、请求、主键=无、歌曲id=无):
song\u obj=song.objects.get(pk=song\u id)
投票对象,created=vote.objects.get\u或创建(song=song\u obj,user=request.user)
投票形式=SongVoteForm(request.POST,实例=投票对象)
如果投票形式有效():
投票表格保存()
返回重定向(“/album/”)

同样在
VoteManager

返回投票(歌曲=歌曲,用户=用户)

不会创建投票,而是必须使用


return Vote.objects.create(歌曲=歌曲,用户=用户)

更改代码后,完整性错误指向其他地方。我将分享此注释结尾处的代码追溯。请告诉我什么是完整性错误,因为我是django的新手,我不太了解。回溯:我认为您在
投票
模型中为
类似的
字段指定了空值,而不是-1或1将完整性错误指向其他地方。我将分享该注释结尾处的代码跟踪。请告诉我什么是完整性错误,因为我是django的新手,我知道的不多。回溯:我认为您在
投票
模型中为
like
字段指定了空值,而不是-1或1