如何在选择字段为ForeignKey时更改select中的显示文本?我不仅需要显示FK的名称,还需要显示它的父名称.
任何人都可以提供线索?
是否有任何通用方法来检测字符串字符集?我用户IPTC标签,没有已知的编码.我需要检测它,然后将它们更改为utf-8.
有人可以帮忙吗?
我需要使用memcached和基于文件的缓存.我在设置中设置了缓存:
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',
'LOCATION': 'c:/foo/bar',
},
'inmem': {
'BACKEND': 'django.core.cache.backends.dummy.DummyCache',
}
}
Run Code Online (Sandbox Code Playgroud)
假的是暂时的.文件说:
cache.set('my_key', 'hello, world!', 30)
cache.get('my_key')
Run Code Online (Sandbox Code Playgroud)
好的,但是我现在如何设置和获取仅用于'inmem'缓存后端的缓存(在将来的memcached中)?文档没有提到如何做到这一点.
我需要制作一个表单,它有1个选择和1个文本输入.必须从数据库中选择.模型看起来像这样:
class Province(models.Model):
name = models.CharField(max_length=30)
slug = models.SlugField(max_length=30)
def __unicode__(self):
return self.name
Run Code Online (Sandbox Code Playgroud)
它的行只由admin添加,但所有用户都可以在表单中看到它.我想从那里制作一个ModelForm.我做了这样的事情:
class ProvinceForm(ModelForm):
class Meta:
CHOICES = Province.objects.all()
model = Province
fields = ('name',)
widgets = {
'name': Select(choices=CHOICES),
}
Run Code Online (Sandbox Code Playgroud)
但它不起作用.select标签不会以html格式显示.我错了什么?
更新:
这个解决方案可以正常工作:
class ProvinceForm(ModelForm):
def __init__(self, *args, **kwargs):
super(ProvinceForm, self).__init__(*args, **kwargs)
user_provinces = UserProvince.objects.select_related().filter(user__exact=self.instance.id).values_list('province')
self.fields['name'].queryset = Province.objects.exclude(id__in=user_provinces).only('id', 'name')
name = forms.ModelChoiceField(queryset=None, empty_label=None)
class Meta:
model = Province
fields = ('name',)
Run Code Online (Sandbox Code Playgroud) 我使用扩展的UserProfile.现在我想制作个人资料版.我需要从原始用户模型中放置所有自定义配置文件字段和电子邮件,名字,姓氏.我尝试这样做,但不能使它工作.电子邮件字段未显示.没有显示用户模型.
我的表格:
class MainUserProfile(ModelForm):
class Meta:
model = User
fields = ('email',)
class UserProf(MainUserProfile):
class Meta:
model = UserProfile
Run Code Online (Sandbox Code Playgroud)
我的看法:
form = UserProf(instance=request.user.get_profile())
Run Code Online (Sandbox Code Playgroud)
更新:
我做到了:)这是代码:
class EditCustomerForm(ModelForm):
def __init__(self, *args, **kwargs):
super(EditCustomerForm, self).__init__(*args, **kwargs)
try:
self.fields['email'].initial = self.instance.user.email
self.fields['first_name'].initial = self.instance.user.first_name
self.fields['last_name'].initial = self.instance.user.last_name
except User.DoesNotExist:
pass
required_css_class = 'required'
error_css_class = 'error'
email = forms.EmailField(label=_(u"Email"))
first_name = forms.CharField(max_length=30, required=True, label=_(u'Forname'))
last_name = forms.CharField(max_length=30, required=True, label=_(u'Surname'))
address = forms.CharField(max_length=255, min_length=10, required=True, label=_(u'Address'))
class Meta:
model = UserProfile
fields = ('email', …Run Code Online (Sandbox Code Playgroud) 我的模特:
class UserProfile(models.Model):
TYPES_CHOICES = (
(0, _(u'teacher')),
(1, _(u'student')),
)
user = models.ForeignKey(User, unique=True)
type = models.SmallIntegerField(default=0, choices=TYPES_CHOICES, db_index=True)
cities = models.ManyToManyField(City)
class City(models.Model):
name = models.CharField(max_length=50)
slug = models.SlugField(max_length=50)
Run Code Online (Sandbox Code Playgroud)
在admin.py中:
admin.site.unregister(User)
class UserProfileInline(admin.StackedInline):
model = UserProfile
class UserProfileAdmin(UserAdmin):
inlines = [UserProfileInline]
admin.site.register(User, UserProfileAdmin)
@receiver(post_save, sender=User)
def create_profile(sender, instance, created, **kwargs):
"""Create a matching profile whenever a user object is created."""
if created:
profile, new = UserProfile.objects.get_or_create(user=instance)
Run Code Online (Sandbox Code Playgroud)
但是当我添加新用户并选择一个城市时,我得到了这个错误:/ admin/auth/user/add /中的IntegrityError(1062,"密钥'user_id'的重复条目'3'")
我的代码出了什么问题?如果我没有选择任何城市 - 用户被正确添加.某种程度上,用户被多次添加到UserProfile.
我需要的是:我想从DB获取对象详细信息.我使用get()函数.我遇到的问题是,我在函数中输入,其中一个参数是字段名称为字符串:
def delete_file_if_changed(id, change, form, model, field_name='image'):
if change:
if field_name in form.changed_data:
old_image = model.objects.get(pk__exact=id)
Run Code Online (Sandbox Code Playgroud)
现在 - 我怎么做我能得到的东西old_image.field_name - 怎么做?
是否有可能在用户编辑页面中更改权限列表?我不想显示所有权限,例如管理员日志条目或身份验证组等.如何修改主查询集以排除其中的一些权限?
有时候我有一个带有奇怪字符的字符串.它们在浏览器中不可见,但是是字符串的一部分,并以len()计算.我怎么能摆脱它?Strip()删除正常空间但不删除那些符号.
我需要允许用户在我的网站上通过信用卡付款。我试图找到合适的 API 选项,但找不到。到目前为止,我已经通过 PayPal 实现了付款,但现在我需要允许用户在没有 PayPal 帐户的情况下通过信用卡付款。
有谁知道具体的付款方式是什么?
django ×7
django-admin ×3
python ×3
django-cache ×1
django-forms ×1
django-users ×1
modelform ×1
paypal ×1
python-2.x ×1
utf-8 ×1