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)
谢谢阅读.我几天来一直坚持这个问题,非常感谢你的帮助.如果您需要更多信息,请知道.
Django和编程新手在这里。我已经制作了一个要部署的应用程序,但是我需要弄清楚如何将对UpdateView的访问限制为该对象的创建者,这让我很沮丧。
当前,用户可以使用CreateView ... / universities / create /创建大学对象,但是任何用户都可以使用... / universities / update /编辑该对象。我要配置它,以便只有作为该大学的创建者的用户(任何具有ManytoMany属性“ administrator”的用户)才可以访问其大学对象的UpdateView。
任何意见,将不胜感激。我已经花了几天的时间,但是我并没有做太多的事情……感谢您的阅读。
models.py
class University(models.Model):
name = models.CharField(max_length=100)
about = models.TextField()
administrators = models.ManyToManyField(User)
profile_picture = models.FileField(upload_to=get_upload_file_name, blank=True)
def __unicode__(self):
return unicode(self.name)
def get_absolute_url(self):
return reverse('university_detail', kwargs={'pk': str(self.id)})
Run Code Online (Sandbox Code Playgroud)
views.py
class UniversityCreateView(CreateView):
model = University
form_class = UniversityForm
template_name = 'university_create.html'
def form_valid(self, form):
f = form.save(commit=False)
f.save()
return super(UniversityCreateView, self).form_valid(form)
class UniversityUpdateView(UpdateView):
model = University
form_class = UniversityForm
template_name='university_form.html'
Run Code Online (Sandbox Code Playgroud) 我们如何更改 dingbats 的 CSS 规则?以下在 iOS Safari 中不起作用。
<span class="dingbat">✖</span>
<style>
.dingbat {
color: blue;
font-size: 100px;
}
</style>
Run Code Online (Sandbox Code Playgroud)
下面是一个演示该问题的 JSFiddle。如果在桌面浏览器中打开 JSFiddle,dingbat X 颜色将为蓝色,大小为 100px。但是如果在手机Safari中打开,颜色会是黑色的,尺寸会偏小。
https://jsfiddle.net/ujs80tv1/2/
此问题被标记为可能与“Unicode 表情符号的颜色”重复。我不认为这个问题是重复的,因为我绝对可以在大多数浏览器中更改 Unicode dingbats 的颜色(例如,参见 JSFiddle)。我唯一无法更改颜色的浏览器是移动版 Safari。据我所知,您无法在任何浏览器中更改表情符号的颜色。
“Unicode 表情符号的颜色”问题中的推荐答案是使用新字体或库。这可能是一种解决方法,但它没有回答问题。如果有人可以证明 unicode dingbats 不能在移动 Safari 中设置样式,我会接受它作为正确答案。