Django和stackoverflow noob在这里.我正在制作一个选举信息应用程序,我希望允许当前登录的用户能够宣布自己,并且只有他自己作为选举中的候选人.
我正在使用Django的内置ModelForm和CreateView.我的问题是Run for Office表单(换句话说,'创建候选人'表单)允许用户选择数据库中的任何用户来制作候选人.
我希望Run for Office中的用户字段自动设置为当前登录的用户,并且要隐藏此值,因此登录用户无法将该字段的值更改为其他人.
views.py
class CandidateCreateView(CreateView):
model = Candidate
form_class = CandidateForm
template_name = 'candidate_create.html'
def form_valid(self, form):
f = form.save(commit=False)
f.save()
return super(CandidateCreateView, self).form_valid(form)
Run Code Online (Sandbox Code Playgroud)
forms.py
class CandidateForm(forms.ModelForm):
class Meta:
model = Candidate
Run Code Online (Sandbox Code Playgroud)
models.py
class Candidate(models.Model):
user = models.ForeignKey(UserProfile)
office = models.ForeignKey(Office)
election = models.ForeignKey(Election)
description = models.TextField()
def __unicode__(self):
return unicode(self.user)
def get_absolute_url(self):
return reverse('candidate_detail', kwargs={'pk': str(self.id)})
Run Code Online (Sandbox Code Playgroud)
谢谢阅读.我几天来一直坚持这个问题,非常感谢你的帮助.如果您需要更多信息,请知道.
我有一个字符串,我想将其视为Jinja模板.我尝试返回字符串,但它按原样发送,Jinja不会渲染它.我不想制作模板文件来渲染它render_template.如何用Jinja渲染字符串?
@app.route('/results')
def results():
template = '''<div class="results">
{% for option in options() %}
<p>{{ option }}</p>
{% endfor %}
</div>
'''
return template
Run Code Online (Sandbox Code Playgroud) tekst= "asdadsasdas 192.168.1.1 asdasdadasdasd 10.22.10.5asfasfaff 172.10.5.1safafa"
import re
szukane = r'\d{1,3}.+'
znalezione = re.search(szukane, tekst)
if znalezione:
co= znalezione.group()
print(co)
Run Code Online (Sandbox Code Playgroud)
我想要提取 IP 地址,但运行上面的代码后我得到:
192.168.1.1 asdasdadasdasd 10.22.10.5asfasfaff 172.10.5.1safafa
Run Code Online (Sandbox Code Playgroud)
为什么它不起作用,我应该改变什么?