以这个非常简单的形式为例.
class SearchForm(Form):
q = forms.CharField(label='search')
Run Code Online (Sandbox Code Playgroud)
这将在模板中呈现:
<input type="text" name="q" id="id_q" />
Run Code Online (Sandbox Code Playgroud)
但是,我想将"占位符"属性添加到此字段,其值为"搜索",以便HTML看起来像:
<input type="text" name="q" id="id_q" placeholder="Search" />
Run Code Online (Sandbox Code Playgroud)
我希望通过字典或类似的方式将占位符值传递给表单类中的CharField:
q = forms.CharField(label='search', placeholder='Search')
Run Code Online (Sandbox Code Playgroud)
实现这一目标的最佳方法是什么?
我正在覆盖change_form.html模板,并希望显示指向其他相关对象的链接.
覆盖管理模板时,有没有办法访问模板中编辑的对象?或者可能以某种方式将该对象注册到管理员时将该对象传递给模板?
我想要一个ManyToMany与自己有关系的模型,我不知道怎么写这个,但我试着写一些代码来说明我想做什么.
class Person(models.Model):
name = models.CharField()
occupation = models.CharField()
friends = models.ManyToManyField('self', through = PersonFriends)
Run Code Online (Sandbox Code Playgroud)
我的模特,我希望朋友们通过
class PersonFriends(models.Model)
???
comment = models.CharField()
Run Code Online (Sandbox Code Playgroud)
在ManyToMany与现场通过关系,如果其他模型的名字是"宠物",例如我会通过类的名字我在这领域person和pet,使他们的模型.ForeignKey(Person)而Pet例如
由于他们是同一个型号,我fields在我的PersonFriends模型中为两个人的名字命名了什么?
我理解文档http://docs.djangoproject.com/en/dev/ref/models/fields/,你可以将error_messages添加到模型字段并提供自己的错误消息字典.但是,你应该通过的词典的关键是什么?
class MyModel(models.Model):
some_field = models.CharField(max_length=55, error_messages={'required': "My custom error"})
Run Code Online (Sandbox Code Playgroud)
但是,如果在使用的模型表格上执行此操作更容易,也可以使用.我宁愿不必再创建显式创建每个字段及其类型.这是我试图避免的:
class MyModelForm(forms.ModelForm):
some_field = forms.CharField(error_messages={'required' : 'Required error'})
Run Code Online (Sandbox Code Playgroud)
更新2:我的项目中使用的测试代码
我的型号:
class MyTestModel(models.Model):
name = models.CharField(max_length=127,error_messages={'blank' : 'BLANK','required' : 'REQUIRED'})
Run Code Online (Sandbox Code Playgroud)
我的表格:
class EditTestModel(ModelForm):
class Meta:
model = MyTestModel
Run Code Online (Sandbox Code Playgroud)
我的看法:
tf = EditTestModel({'name' : ''})
print tf.is_valid() # prints False
print tf.full_clean() # prints None
print tf # prints the form, with a <li> error list containg the error "This field is required"
<tr><th><label for="id_name">Name:</label></th><td><ul class="errorlist"><li>This field is …Run Code Online (Sandbox Code Playgroud) 我正在构建一个小的PyGTK应用程序,我有一个文本输入字段(当前是ComboBoxEntry),其中填充了一些用户应该可以选择的值.
我想我想要做的是过滤掉匹配的字段并仅显示那些字段,以便使用键盘箭头的用户可以选择其中一个匹配字段.
为了给出一些背景知识,预定义的值是一堆网址,用户应该可以从theese中选择或填写一个新的.
示例:预定义的URL:
当用户键入' http://www.g '时,将显示以该字符串开头的三个URL(以某种方式),当键入' http://www.goog ' 时,将显示两个以此开头的URL
有任何想法吗?
我有两个模型在某种程度上与'through'表有很多关系吗?
class Bike(models.Model):
nickname = models.CharField(max_length=40)
users = models.ManyToManyField(User, through='bike.BikeUser')
Run Code Online (Sandbox Code Playgroud)
BikeUser类
class BikeUser(models.Model):
bike = models.ForeignKey(Bike)
user = models.ForeignKey(User)
comment = models.CharField(max_length=140)
Run Code Online (Sandbox Code Playgroud)
我想为Bike类添加功能以便与用户合作,是否有最佳实践方法.我想避免在Bike类中添加太多方法,而是让某种管理器可以完成
就像是:
bike.bikeusers_set.commonMethod()
Run Code Online (Sandbox Code Playgroud)
要么
bike.bikeusers.commonMethod()
Run Code Online (Sandbox Code Playgroud)
实现这一目标的最佳方法是什么?
如果我有两个与直通模型有很多关系的模型,我该如何从"通过"表中获取数据.
class Bike(models.Model):
nickname = models.CharField(max_length=40)
users = models.ManyToManyField(User, through='bike.BikeUser')
Run Code Online (Sandbox Code Playgroud)
BikeUser类
class BikeUser(models.Model):
bike = models.ForeignKey(Bike)
user = models.ForeignKey(User)
comment = models.CharField(max_length=140)
Run Code Online (Sandbox Code Playgroud)
我会在该自行车上添加一个用户(假设我已经拥有了myBike和myUser)
BikeUser.objects.create(bike = myBike, user = myUser, comment = 'Got this one at a fancy store')
Run Code Online (Sandbox Code Playgroud)
我可以通过myBike.users.all()获取'myBike'上的所有用户,但我如何获得'comment'属性?
我想做点什么
for myBikeUser in myBike.users.all():
print myBikeUser.comment
Run Code Online (Sandbox Code Playgroud)