小编jdi*_*son的帖子

如何使用Django上传文件

我正在尝试使用Django编写表单来上传文件.管理表单工作正常,但问题是,在我单击表单上的提交后,表单丢失了我选择的文件(文件名消失,'选择文件'按钮旁边出现'没有文件选择'),视图不会验证表单,因为文件丢失.我的表单/视图/文件处理程序看起来就像django示例.

forms.py

class AttachForm(forms.ModelForm):
    class Meta:
            model = Attachment
            exclude = ('insp', 'contributor', 'date')
Run Code Online (Sandbox Code Playgroud)

views.py

def handle_uploaded_file(f):
    destination = open('some/file/name.txt', 'wb+')
    for chunk in f.chunks():
        destination.write(chunk)
    destination.close()

def attach(request, insp_id):
    if request.method == 'POST':
            form = AttachForm(request.POST, request.FILES)
            if form.is_valid():
                    handle_uploaded_file(request.FILES['file'])
                    f = form.save(commit=False)
                    f.contributor = request.user
                    f.insp = insp_id
                    f.save()
                    return HttpResponseRedirect(server + '/inspections/' + str(insp_id) + '/')
    else:
            form = AttachForm()
    return render_to_response('attach.html', locals(), context_instance=RequestContext(request))
Run Code Online (Sandbox Code Playgroud)

models.py

class Attachment(models.Model):
    insp = models.ForeignKey(Inspection)
    contributor = models.ForeignKey(User, related_name='+')
    date …
Run Code Online (Sandbox Code Playgroud)

django

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

除空值外,Django unique = True

我有这个型号:

class Part(models.Model):
    serial_number = models.CharField(max_length=15, null=True, blank=True, validators=[validate_serial], unique=True)
    ....
Run Code Online (Sandbox Code Playgroud)

serial_number可以为空并且为null,因为所有部件都不一定具有序列号.但是,在存储没有序列号的一个部件后,空白不再是唯一的,我收到此错误:

具有此序列号的部分已存在.

这有解决方法吗?我已经看过这个问题,但我没有一个模型.我要么使用管理员,要么直接在代码中执行.

python django

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

为什么Python返回负列表索引?

如果我有10个元素的列表:

>>> l = [1,2,3,4,5,6,7,8,9,0]
Run Code Online (Sandbox Code Playgroud)

为什么l [10]会返回一个IndexError,但是l [-1]会返回0?

>>> l[10]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range
>>> l[0]
1
>>> l[-1]
0
>>> l[-2]
9
Run Code Online (Sandbox Code Playgroud)

我想要做的是如果列表中没有先前的元素则抛出错误.

python

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

Python for循环跳过其他所有循环?

我有一个奇怪的问题.有人看到我的代码有什么问题吗?

for x in questions:
    forms.append((SectionForm(request.POST, prefix=str(x.id)),x))
    print "Appended " + str(x)
for (form, question) in forms:
    print "Testing " + str(question)
    if form.is_valid():
        forms.remove((form,question))
        print "Deleted " + str(question)
        a = form.save(commit=False)
        a.audit = audit
        a.save()                
    else:
        flag_error = True
Run Code Online (Sandbox Code Playgroud)

结果是:

Appended Question 50
Appended Question 51
Appended Question 52
Testing Question 50
Deleted Question 50
Testing Question 52
Deleted Question 52
Run Code Online (Sandbox Code Playgroud)

它似乎跳过问题51.它被附加到列表中,但for循环跳过它.有任何想法吗?

python django

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

在自然休息时分割一个字符串

在渲染标题时(使用reportlab),如果长度超过45个字符,我想将它分成两行.到目前为止我有这个:

if len(Title) < 45:
    drawString(200, 695, Title)
else:
    drawString(200, 705, Title[:45])
    drawString(200, 685, Title[45:])
Run Code Online (Sandbox Code Playgroud)

这个问题是我只想在自然中断时分割标题,例如空格出现的位置.我该如何完成这项工作?

python

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

防止来自Python的电子邮件被标记为垃圾邮件

我使用Django构建了一个内部公司网站.我有一个视图,使用send_mail()函数向网站用户发送电子邮件.

有些用户没有收到来自该网站的电子邮件,我们认为如果他们将Outlook配置为高垃圾邮件保护级别,则该网站的电子邮件会被标记为垃圾邮件.

是否有任何编码技术使从Python发送的电子邮件对Outlook和其他电子邮件客户端合法?

python email django outlook

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

标签 统计

python ×5

django ×4

email ×1

outlook ×1