小编rob*_*s85的帖子

Django admin - 更改ForeignKey显示文本

如何在选择字段为ForeignKey时更改select中的显示文本?我不仅需要显示FK的名称,还需要显示它的父名称.

任何人都可以提供线索?

django django-admin

38
推荐指数
5
解决办法
3万
查看次数

Python - 检测字符集并转换为utf-8

是否有任何通用方法来检测字符串字符集?我用户IPTC标签,没有已知的编码.我需要检测它,然后将它们更改为utf-8.

有人可以帮忙吗?

python utf-8 python-2.x

34
推荐指数
4
解决办法
7万
查看次数

如何在Django中使用2个不同的缓存后端?

我需要使用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中)?文档没有提到如何做到这一点.

django django-cache django-caching

19
推荐指数
2
解决办法
5523
查看次数

字段选择()作为查询集?

我需要制作一个表单,它有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)

django modelform

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

使用ModelForm和UserProfile编辑配置文件

我使用扩展的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)

django django-forms

9
推荐指数
1
解决办法
4053
查看次数

Django - admin中的UserProfile m2m字段 - 错误

我的模特:

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.

django django-models django-admin django-users

9
推荐指数
1
解决办法
2042
查看次数

django - 获取名称为动态的字段

我需要的是:我想从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 - 怎么做?

python django

8
推荐指数
1
解决办法
6453
查看次数

Django admin - 更改权限列表

是否有可能在用户编辑页面中更改权限列表?我不想显示所有权限,例如管理员日志条目或身份验证组等.如何修改主查询集以排除其中的一些权限?

django django-admin django-permissions

7
推荐指数
1
解决办法
4370
查看次数

Python - 如何从字符串中删除隐藏的符号?

有时候我有一个带有奇怪字符的字符串.它们在浏览器中不可见,但是是字符串的一部分,并以len()计算.我怎么能摆脱它?Strip()删除正常空间但不删除那些符号.

python

6
推荐指数
3
解决办法
9134
查看次数

PayPal API 通过信用卡支付

我需要允许用户在我的网站上通过信用卡付款。我试图找到合适的 API 选项,但找不到。到目前为止,我已经通过 PayPal 实现了付款,但现在我需要允许用户在没有 PayPal 帐户的情况下通过信用卡付款。

有谁知道具体的付款方式是什么?

paypal

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