我的表单没有保存我需要它的模型.我的表格:
class RewardForm(forms.Form):
quantity = forms.IntegerField(max_value=10, min_value=1, label=_('quantity'), initial=1)
reward = forms.CharField(max_length=50, label=_('reward'))
reward_denomination = forms.ModelChoiceField(queryset=Reward_Denomination.objects.all(), widget=forms.RadioSelect)
def clean_reward(self):
data = self.cleaned_data.get('reward')
try:
reward = Reward.objects.get(reward_name=data)
except ObjectDoesNotExist:
raise forms.ValidationError(_('Reward does not exist'), code='invalid')
return data
def clean_reward_denomination(self):
data = self.cleaned_data.get('reward_denomination')
try:
denomination = Reward_Denomination.objects.get(denomination=data)
except ObjectDoesNotExist:
raise forms.ValidationError(_('Denomination does not exist'), code='invalid')
return data
def save(self, request, commit=True):
user = request.user
data = self.cleaned_data
'try:
post_reward = data['reward']
post_denomination = data['reward_denomination']
quantity = data['quantity']
except LookupError:
raise Http404
reward …Run Code Online (Sandbox Code Playgroud) 我希望允许用户将他们的域映射到我的 Django 应用程序中的页面。因此,如果他们的页面位于: user.mydomain.com ,我希望他们能够将其域映射到 url,使其变为: usersdomain.com 。
我发现这个答案让我了解了如何设置子域:
如果您控制域的名称服务器并有权访问 RNDC 密钥,则可以使用注册后视图/信号将 cname 发送到您的 DNS 服务器,该服务器会将 username.yoursite.com 解析为 yoursite.com。确保 apache 设置为接收正确应用程序的通配符虚拟主机,然后使用自定义中间件读取 request.META['SERVER_NAME'].lsplit('.')[0] 以查看子域是什么。然后,您可以在视图中使用此信息来区分用户子域。
但我不知道如何让用户将他们的域指向我的子域。
我在自定义 Django-Allauth 模板时遇到了麻烦。可能是我的 TEMPLATE_DIRS 值有问题,或者是我不知道的问题。如果我将 TEMPLATE_DIRS 指向项目目录中的“Templates/AllAuth”文件夹,它会忽略我的自定义模板。现在,它忽略我当前的base.html 文件和我当前的signup.html/login.html 文件,即使报告说错误来自正确的文件/文件夹。我怎样才能解决这个问题?
Unclosed tag 'block'. Looking for one of: endblock
Run Code Online (Sandbox Code Playgroud)
我当前的基本模板:
{% block content %}
{% endblock %}
Run Code Online (Sandbox Code Playgroud)
该错误发生在我的signup.html 页面上,如下所示:
{% load staticfiles %}
{% load url from future %}
{% load i18n %}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>{% trans "Sign Up" %}</title>
<link rel="stylesheet" type="text/css" href="{% static "stylesheets/sign-up.css" %}" />
<link href="http://fonts.googleapis.com/css?family=Arvo:400,700|Open+Sans" rel="stylesheet" type="text/css" /> …Run Code Online (Sandbox Code Playgroud) 所以我遇到了一些麻烦.当我尝试访问特定型号的URL时,我得到404:
url(r'^rewards/(?P<slug>[-\w]+)/$', RedeemReward.as_view(), name="reward"),
url(r'^rewards/(?P<slug>[-\w]+)/$', CompanyDetail.as_view(), name="company"),
Run Code Online (Sandbox Code Playgroud)
因此,顶部网址将是奖励/亚马逊礼品卡,而底部网址将像奖励/亚马逊(显示亚马逊提供的所有礼品卡).奖励网址按预期工作,但当我尝试访问底部网址时,我得到404.风景:
class CompanyDetail(DetailView):
model = Company
context_object_name = 'company'
slug_field = 'company_slug'
template_name = 'asdx/companies.html'
def get_rewards(self):
rewards = Reward.objects.filter(company=self.object)
return rewards
def get_context_data(self, **kwargs):
context = super(CompanyDetail, self).get_context_data(**kwargs)
context['rewards'] = self.get_rewards()
return context
Run Code Online (Sandbox Code Playgroud)
这里发生了什么?