gpt4 book ai didi

python - 带有表单的 TemplateView - 'unicode' 对象没有属性 'get'

转载 作者:行者123 更新时间:2023-11-30 23:25:55 25 4
gpt4 key购买 nike

我遇到了挑战,希望你能帮助我克服。

正在构建一个 django 驱动的应用程序,用于电影票预订,但表单不足。

当用户点击特定电影时,我想呈现一个页面,其中包含一个表单,用户可以在其中选择他/她的门票选项,例如门票数量、座位号、日期等。

但是,我的表单返回数据库中的所有电影。

我希望能够返回用户单击的唯一电影,因为该 View 已经返回用户单击的特定电影。我该怎么做?

我当前的方法给了我一个异常错误'unicode'对象没有属性'get'

在我的 forms.py 中我有这个

class MoviePaymentsForm(forms.ModelForm):

def __init__(self, *args, **kwargs):

super(MoviePaymentsForm, self).__init__(*args, **kwargs)
movie = forms.ModelChoiceField(queryset=Movie.objects.get(slug=args[0]))

在我的views.py中我有这个

class SpecificMovieTemplateView(TemplateView):
model = Movie
template_name = 'movie.html'

def get_context_data(self, *args, **kwargs):

context = super(SpecificMovieTemplateView, self).get_context_data(**kwargs)
context['movie'] = Movie.objects.get(slug=kwargs['movieslug'])
print 'Movie ID is ==> ' + str(context['movie'].id)
context['form_movie'] = MoviePaymentsForm(kwargs['movieslug'])
return context

在我的 models.py 中我有这个

class MoviePayments(TimeStampedModel):
uuid_placement = shortuuid.encode(uuid.uuid4())
short_uuid = uuid_placement[:8]
reference_id = models.CharField(max_length=8, blank=True, unique=True,
default="%s" % str(short_uuid))
movie = models.ForeignKey(Movie)
ticket = models.ForeignKey(Ticket)
quantity = models.IntegerField()
date = models.ForeignKey(MovieShowDate)
time = models.ForeignKey(MovieShowTimes)
paid_for = models.BooleanField(default=False, blank=False)
mm_transaction_id = models.CharField(max_length=100, blank=True)

最佳答案

我终于明白了。就像 Bogdan 上面指出的那样,我需要在 init 方法中将 slug 字段作为参数传递,并在查询集上使用过滤器来返回特定的电影,如下所示

class MoviePaymentsForm(forms.ModelForm):

def __init__(self, slug, *args, **kwargs):
super(MoviePaymentsForm, self).__init__(*args, **kwargs)
self.fields['movie'].queryset = Movie.objects.filter(slug=slug)

关于python - 带有表单的 TemplateView - 'unicode' 对象没有属性 'get',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22761632/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com