python - 获取请求参数并在forms.py中作为widget参数使用

标签 python django forms request

我需要从 views.py 获取请求参数并使用 request.LANGUAGE_CODE 将模型对象翻译成事件语言,因为现在我得到的是默认语言的“字符串”对象,而不是事件语言。我应该如何进行,以便将参数从 init 函数传递到表单小部件?

来自 views.py:

form = ContactForm(lang=request.LANGUAGE_CODE)  

表单.py:

from django import forms                                                        
from phonenumber_field.formfields import PhoneNumberField                       
from django.utils.translation import ugettext_lazy as _                         
from django.utils import translation                                            
from .models import *                                                           

strings = Strings.objects.language().get(pk=1)                  

class ContactForm(forms.Form):                                                  
    phone = PhoneNumberField(                                                      
        min_length=9,                                                           
        max_length=20,                                                          
        widget=forms.TextInput(attrs={                                          
            'id': 'phone-number',                                               
            'placeholder': strings.placeholder,                                 
        })                                                                      
    )                                                                           

    def __init__(self, *args, **kwargs):                                        
        self.lang = kwargs.pop('lang', None)                                    
        super(ContactForm, self).__init__(*args, **kwargs)                      

最佳答案

试试这段代码:

def __init__(self, *args, **kwargs):
    self.lang = kwargs.pop('lang', None)
    super(ContactForm, self).__init__(*args, **kwargs)  
    form.fields['phone'].widget.attrs['placeholder'] = strings.placeholder[self.lang]

当然,您应该实现 strings.placeholder[self.lang] 部分(这只是一个示例)以通过语言代码本地化您的字符串。

希望这对您有所帮助。

关于python - 获取请求参数并在forms.py中作为widget参数使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33691452/

相关文章:

python - textvariable 更改时标签不更新 (Tkinter)

python - Pandas 数据框 - 具有包含字符串列表的列

python - GeoDjango + PostGIS 计算错误的距离

c# - 禁用窗体双击时的最大化/最小化

php - 交响乐 3 : Passing variables into forms

python - 在 Google App Engine 上分析/优化网站的最佳方式

python - 为什么我无法使用 python 和 mysql.connector 连接到 mysql 数据库?

python reportlab - registerFont - django - 一段时间后字体不可用

python - Django 在 Linux 中找不到我的模型,但在 Windows 中可以

javascript - 返回页面时表单值丢失