小编Ilj*_*iko的帖子

如何将用户对象传递给 Django 中的表单

我如何将用户对象或请求传递给我的表单以将其用作输入文本框的初始值?

例如,我有我的表格:

class ContactForm(forms.Form):
contact_name = forms.CharField(required=True, initial="???")
contact_email = forms.EmailField(required=True)
subjects = forms.ChoiceField(choices=emailsubjects)
content = forms.CharField(
    required=True,
    widget=forms.Textarea
)

def __init__(self, *args, **kwargs):
    self.request = kwargs.pop("request")
    super(ContactForm, self).__init__(*args, **kwargs)
    self.fields['contact_name'].label = "Your name:"
    self.fields['contact_email'].label = "Your email:"
    self.fields['content'].label = "What do you want to say?"
    self.fields['subjects'].label = "Please, select the subject of your message"
Run Code Online (Sandbox Code Playgroud)

我希望我的 user.first_name 作为 contact_name 字段的默认值。

这是我的 views.py,我在其中调用表单:

def ContactsView(request):
form_class = ContactForm(request=request)
# new logic!
if request.method == 'POST':
    form = form_class(data=request.POST)

    if form.is_valid():
        contact_name …
Run Code Online (Sandbox Code Playgroud)

python forms django views

6
推荐指数
1
解决办法
5206
查看次数

姜戈。列出静态文件夹中的文件

我遇到的一个看似基本的事情是将一个简单的静态文件列表(比如我的服务器上单个存储库目录的内容)呈现为链接列表。这是否安全是另一个问题,但假设我想这样做......这就是我的工作目录的样子。我想在我的模板中列出来自分析文件夹的所有文件,作为链接。

在此处输入图片说明
我已经尝试按照一些教程访问 view.py 中的静态文件并像这样:

view.py

from os import listdir
from os.path import isfile, join
from django.contrib.staticfiles.templatetags.staticfiles import static


def AnalyticsView(request):
    mypath = static('/analytics')
    allfiles = [f for f in listdir(mypath) if isfile(join(mypath, f))]

    return render_to_response('Rachel/analytics.html', allfiles)
Run Code Online (Sandbox Code Playgroud)

还有我的模板:

<p>ALL FILES:</p>
{% for file in allfiles %}
  {{ file }}
    <br>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

还有我的 settings.py

PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__))
STATIC_ROOT = os.path.join(PROJECT_ROOT, 'static')
STATIC_URL = '/static/'
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "static"),
]
Run Code Online (Sandbox Code Playgroud)

我收到错误:

FileNotFoundError at /analytics/
[WinError 3] The system …
Run Code Online (Sandbox Code Playgroud)

python django django-staticfiles

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

Sending email with attached file in Django

I am trying to send and email in Django forms with attached file, but i cant figure out how to send the file(uploaded by user) without saving it locally. I have my form:

class PrintForm(forms.Form):
    contact_name = forms.CharField(required=True)
    contact_email = forms.EmailField(required=True)
    supervisor = forms.ChoiceField(
        choices=[(str(sup.email), str(sup.name)) for sup in Supervisors.objects.all()]
    )
    file = forms.FileField()
    content = forms.CharField(
        required=True,
        widget=forms.Textarea
    )
Run Code Online (Sandbox Code Playgroud)

and my view:

def print(request):
   #  context = dict()
   #  context['printers'] = Printer.objects.all()
   #   return render(request, 'threeD/print.html', context)

   if request.method …
Run Code Online (Sandbox Code Playgroud)

python email django file

4
推荐指数
1
解决办法
6100
查看次数

Python将时间字符串"4d12h33m59s"分割成碎片

我想知道是否有人可以帮助提出一个优雅的解决方案,如何将从路由器的格式API收到的时间字符串拆分"4d12h33m59s"成碎片.

问题是字符串可能是动态大小.例如,它可以是"4d12h33m59s""12h33m59s""12y14w4d12h33m59s""12m23s","33s".

是否有任何优雅的方法来分割字符串并得到如下列表:

received_string = "12y14w4d12h33m59s"
time_list = convert_string(received_string)

print(time_list) 
["12y","14w","4d","12h","33m","59s"]
Run Code Online (Sandbox Code Playgroud)

python string time split

-2
推荐指数
1
解决办法
51
查看次数

标签 统计

python ×4

django ×3

django-staticfiles ×1

email ×1

file ×1

forms ×1

split ×1

string ×1

time ×1

views ×1