小编Mit*_*ney的帖子

在Django中,如何将表单中的用户字段设置为当前登录的用户?

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 django-forms django-views

21
推荐指数
2
解决办法
1万
查看次数

如何将对对象的UpdateView的访问限制为该对象的创建者

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)

django django-models django-views django-permissions

5
推荐指数
1
解决办法
1680
查看次数

我们如何在移动 Safari 中更改 dingbat unicode 字符的颜色和大小?(html 实体)

我们如何更改 dingbats 的 CSS 规则?以下在 iOS Safari 中不起作用。

<span class="dingbat">&#x2716;</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 中设置样式,我会接受它作为正确答案。

html css unicode mobile-safari dingbats

3
推荐指数
1
解决办法
2786
查看次数