javascript

git

python

java

github

django

c#

reactjs

loops

git-remote

pandas

performance

system.out

git-reset

regex

email

string-parsing

object

git-branch

agile

带有Django上传表单的空Request.FILES

尝试使用非常简单的形式将文件上传到新的类实例中。 我希望两个文件都在request.FILES中,但是它是空的。 我在捆绑的开发服务器上。

被困在这里,并经历了所有相关问题。

wayfinder_map.media_file = request.FILES['media_file'] 

产生

MultiValueDictKeyError:“在MultiValueDict中找不到密钥'media_file': {}>”

模型

class WayfinderMap(models.Model):
    """ Way-finding Map Config"""


    media_file = models.FileField(upload_to="maps", null=True, blank=True) 
    wall_file = models.FileField(upload_to="maps_data", null=True, blank=True) 

视图

@login_required
def create_map(request, form_class=WayfinderMapForm, template_name="wayfinder/map/create.html"):
wayfinder_map_form = form_class(request.user, request.POST or None, request.FILES)

    if wayfinder_map_form.is_valid():
        wayfinder_map = wayfinder_map_form.save(commit=False)
        wayfinder_map.media_file = request.FILES['media_file']
        wayfinder_map.data_file = request.FILES['data_file']
        wayfinder_map.creator = request.user
        wayfinder_map.save()
    return HttpResponseRedirect(wayfinder_map.get_absolute_url())

return render_to_response(template_name, {
    "wayfinder_map_form": wayfinder_map_form,
}, context_instance=RequestContext(request))

模板

<form enctype="multipart/form-data" class="uniForm" id="wayfinder_map_form" method="POST" action="">
        <fieldset class="inlineLabels">
            {{ wayfinder_map_form|as_uni_form }}
            <div class="form_block">
                <input type="hidden" name="action" value="create" />
                <input type="submit" value="{% trans 'create' %}"/>
            </div>
        </fieldset>
    </form>
trans by 2020-08-09T23:16:52Z

从临时内部获取Django表单小部件的类型

我正在遍历表单的字段,对于某些字段,我希望布局略有不同,需要更改HTML。

为了准确地做到这一点,我只需要知道小部件类型。 它的类名或类似名称。 在标准python中,这很容易! field.field.widget.__class__.__name__

不幸的是,您不允许访问模板中的下划线变量。 大!

您可以测试ModelForm,但这仅适用于文本/密码Form类型。 我需要更多的分辨率。

对我而言,无论看上去多么困难,在模板级别执行此操作都是最有意义的。 我已经将处理字段的HTML的一些代码外包给了包含在字段循环中的单独模板。 这意味着它在ModelForms和标准Forms之间是一致的(如果我编写了一个中间Form类,那是不对的)。

如果您看到不需要我编辑20多种表格的通用方法,也请告诉我!

trans by 2020-08-04T19:31:26Z

Django Imagefield无法通过ModelForm正常工作

我敢肯定我正在做的事情确实很愚蠢,但是我已经尝试了好几个小时了,而且没有任何事情发生在我身上。

我正在使用ModelForm,以便可以公开模型中的一些字段以进行编辑。 2x ImageField,1x TextField。 表单已处理,TextField有效。 这两个ImageField不起作用,这就是为什么我今天在这里。

我正在使用Django 1.0.2

这是相关的代码(如果您需要更多,请询问-我不包括HTML,因为该部分似乎可以正常工作):

模型:

class Company(models.Model):
    #...
    logo = models.ImageField(upload_to='logos', blank=True)
    intro_pic = models.ImageField(upload_to='intropics', blank=True)
    intro_text = models.TextField(blank=True)

视图和形式:

def admin_edit(request, company_slug):
    company = get_object_or_404(Company, slug = company_slug)

    f = AdminEditForm(instance = company)
    if request.method == 'POST':
        f = AdminEditForm(request.POST, instance = company)
        if f.is_valid():
            print "Processing form"
            print f.cleaned_data['intro_pic']
            f.save()

    return render_to_response('uadmin/edit.html', {'company':company, 'f':f}, RequestContext(request))


class AdminEditForm(ModelForm):
    class Meta:
        model = Company
        fields = ['logo', 'intro_pic', 'intro_text']
trans by 2020-07-30T22:13:36Z

django-文件上传时的最大图像大小

我的表单中有一个ImageField。 我将如何实施文件大小的最小值/最大值,例如-

image = forms.ImageField(max_size = 2MB) 

要么

image = forms.ImageField(min_size = 100k)

谢谢。

trans by 2020-07-24T03:55:59Z

如何在Django,csrf令牌和POST请求中使用curl

我正在使用curl测试我的Django表单之一。 我尝试过的呼叫(每个呼叫都有错误,并且在多行代码中都有可读性):

(1):

curl
-d "{\"email\":\"test@test.com\"}"
--header "X-CSRFToken: [triple checked value from the source code of a page I already loaded from my Django app]"
--cookie "csrftoken=[same csrf value as above]"
http://127.0.0.1:8083/registrations/register/

(带有http标头和Cookie中的X-CSRFToken)会导致出现400错误,并且不返回任何数据。

(2):

curl
-d "{a:1}"
--header "X-CSRFToken:[as above]"
--cookie "csrftoken=[as above];sessionid=[from header inspection in Chrome]"
http://127.0.0.1:8083/registrations/register/

(与(1)中一样,但标头属性声明中没有空格,并且cookie中也包含X-CSRFToken)会导致相同的400错误,而不会返回任何数据。

(3):

curl
-d "{a:1}"
--header "X-CSRFToken:[as above]"
http://127.0.0.1:8083/registrations/register/

(只有带有X-CSRFToken的http标头,没有cookie)会导致错误代码403,并显示消息:未设置CSRF cookie。

我该如何测试卷曲的形式? 除了Cookie值和http标头,我没有考虑哪些因素?

trans by 2020-07-19T21:50:08Z

django-使用模型表单创建自定义错误消息

我可以看到使用表单时如何向字段添加错误消息,但是模型表单呢?

这是我的测试模型:

class Author(models.Model):
    first_name = models.CharField(max_length=125)
    last_name = models.CharField(max_length=125)
    created = models.DateTimeField(auto_now_add=True)
    updated = models.DateTimeField(auto_now=True)

我的模型表格:

class AuthorForm(forms.ModelForm):
    class Meta:
        model = Author

字段first_namelast_name上的错误消息是:

这是必填栏

如何以模型形式进行更改?

trans by 2020-07-17T17:39:37Z

能否在Django Admin应用程序中更改字段标签?

如标题所示。 我希望能够在管理应用程序中更改单个字段的标签。 我知道Form.field属性,但是如何让我的Model或ModelAdmin传递这些信息呢?

trans by 2020-07-13T19:39:29Z

django-如何从request.FILES获取文件名?

如何在Django中从request.FILES获取文件名?

def upload(request):
    if request.method == 'POST':
        form = UploadForm(request.POST, request.FILES)
        if form.is_valid():
            upload = Upload()
            upload.timestamp = datetime.datetime.now()
            save_instance(form, upload)

我尝试使用此方法,但是没有用:

  if 'filename'  in request.FILES:
         filename = request.FILES['filename']
trans by 2020-07-12T03:25:19Z

在每个页面上放置一个django登录表单

如果用户未登录,我希望登录表单(来自django.contrib.auth的AuthenticationForm)出现在网站的每个页面上。当用户登录时,它们将被重定向到同一页面。 如果有错误,该错误将与表单一起显示在同一页面上。

我想您需要一个上下文处理器来为每个模板提供表单。 但是,那么您还需要每个视图来处理发布的表单吗? 这是否意味着您需要创建一些中间件? 我有点迷路了。

有接受的方式吗?

trans by 2020-07-04T09:59:08Z

除非选中,否则带有BooleanField的Django表单始终无效

我有一个使用以下形式的应用程序:

class ConfirmForm(forms.Form):
    account_name = forms.CharField(widget=forms.HiddenInput)
    up_to_date = forms.BooleanField(initial=True)

我在以下模板摘录中使用该表格:

<form class="confirmform" action="/foo/" enctype="multipart/form-data" method="post">
{{ confirm_form.up_to_date }} Check if this data brings the account up to date.<br>
{{ confirm_form.account_name }} <input type="submit" name="confirm" value="Confirm" />
</form>

我的视图使用以下基本代码结构:

if request.method == 'POST':
    #check for 'confirm' because I actually have multiple forms in this page
    if 'confirm' in request.POST:
        confirm_form = ConfirmForm(request.POST)
        if confirm_form.is_valid():
            #do stuff
        else:
            c['confirm_form'] = confirm_form
else:
    c['confirm_form'] = ConfirmForm({'account_name':'provided_value'})

有两件事是错误的:

1)即使我具有initial = True,也不会在页面加载时选中该复选框

2)除非我选中此复选框,否则该表格始终无效。 它仅给出up_to_date的错误:“此字段为必填。”

我已经读过类似的问题,但是他的解决方案不适用于我的项目。

发生什么了?

编辑:

我更新了上面的代码,以更加忠实于我的实际代码。

问题1是我的错,因为在实例化表单时通过绑定数据来覆盖初始值。

问题2我仍然考虑一个问题。 在up_to_date上使用required=False可以解决此问题,但是使用默认窗口小部件似乎不正确,BooleanField可以是NULL(导致有效性检查失败)或True,但不能是False

trans by 2020-07-03T14:24:31Z

Django:如何以管理表单获取当前用户

在Django的ModelAdmin中,我需要显示根据用户拥有的权限定制的表单。 有没有一种方法可以将当前用户对象放入表单类,以便我可以在其__init__方法中自定义表单?
我认为可以将当前请求保存在本地线程中,但这是我的最后选择,我认为这是一种不良的设计方法。

trans by 2020-06-27T07:54:01Z

Django中的内联表单验证

我想在管理员更改表单中强制使用整个内联表单集。 因此,在当前情况下,当我在“发票”表单(在Admin中)中单击“保存”时,内联“订单”表单为空白。 我想阻止人们创建没有关联订单的发票。

有人知道这样做的简单方法吗?

在此情况下,模型字段上的正常验证(如(required=True))似乎不起作用。

trans by 2020-02-18T22:17:40Z

如何从Django中的编辑表单更新对象?

可能是新手问题,所以请耐心等待。

我有一个Django表单,可以编辑模型的特定实例。 为了知道正在编辑哪个对象,我有一个包含对象ID的隐藏字段以及包含ID的URL。

第一个问题:在隐藏字段中包含对象的ID是否正确?

我(可能是毫无根据的)担心仅将其作为URL的一部分,然后有人可以打开一个对象ID的页面,将表单提交给另一个对象,然后该对象将被覆盖。 这就是为什么我要使用隐藏字段的原因。

将ID存储在隐藏字段中的问题在于,在验证表单时,Django抱怨该对象没有唯一的ID(显然)。

第二个问题:如果表单中包含唯一字段,那么如何告诉Django忽略该键已经存在这一事实,以便更新对象?

trans by 2020-02-11T10:05:09Z

使用FileField对Django表单进行单元测试

我有一个像这样的表格:

#forms.py
from django import forms

class MyForm(forms.Form):
    title = forms.CharField()
    file = forms.FileField()


#tests.py
from django.test import TestCase
from forms import MyForm

class FormTestCase(TestCase)
    def test_form(self):
        upload_file = open('path/to/file', 'r')
        post_dict = {'title': 'Test Title'}
        file_dict = {} #??????
        form = MyForm(post_dict, file_dict)
        self.assertTrue(form.is_valid())

如何构造file_dict以将upload_file传递到表单?

trans by 2020-02-11T01:50:55Z

如何在模板中显示Django'__all__'表单错误?

我有以下表单代码:

# forms.py
class SomeForm(forms.Form):
    hello = forms.CharField(max_length=40)
    world = forms.CharField(max_length=40)

    def clean(self):
        raise forms.ValidationError('Something went wrong')

# views.py
def some_view(request):
    if request.method == 'POST':
        form = SomeForm(request.POST)
        if form.is_valid():
            pass
    else:
        form = SomeForm()

    data = {
        'form': form
    }
    return render_to_response(
        'someform.html',
        data,
        context_instance=RequestContext(request)
    )

# someform.html
{{ form.hello }}
{{ form.hello.errors }}

{{ form.world }}
{{ form.world.errors }}

如何在模板级别显示键__all__中的错误,而不必分别在视图中提取错误? 我想避免以下情况:

    if form.errors.has_key('__all__'):
        print form.errors['__all__']
trans by 2020-01-24T13:01:12Z

更改在Django中使用ModelForm创建的表单元素的宽度

如果使用ModelForm创建textarea表单元素,如何更改它的宽度?

这是我的产品类别:

class ProductForm(ModelForm):
    long_desc = forms.CharField(widget=forms.Textarea)
    short_desc = forms.CharField(widget=forms.Textarea)
    class Meta:
        model = Product

还有模板代码...

{% for f in form %}
    {{ f.name }}:{{ f }}
{% endfor %}

f是实际的表单元素...

trans by 2020-01-15T15:22:45Z

如何在非UL中呈现Django表单错误?

根据文档,我的Django表单中的错误正在UL中呈现。

Django的

{{ form.non_field_errors }}

的HTML

<ul class="errorlist">
  <li>Sender is required.</li>
</ul>

如何呈现错误,使它们不出现在UL中,而是出现在与每个字段相关的错误的段落标签中? 所以理想地...

<ul>
  <li>
    <label>...</label>
    <input>...</input>
    <p>Error message...</p>
  </li>
</ul>

编辑:

为了清楚起见,我应该在示例中使用此代码...

{{ form.fieldname.errors }}
trans by 2020-01-14T11:57:05Z

表格-Django多选小部件?

Django管理站点使用了一个非常酷的小部件:

enter image description here

如何在自己的应用程序中使用此小部件? 我看不到这里列出的任何东西。

trans by 2020-01-14T05:31:07Z

japplet-Django将额外字段添加到从Mod生成的ModelForm中

我必须从模型生成FormSet,但是我需要在每个表单中插入一个“额外值”。

具体来说,我有一个JApplet,它在图像上生成一些标记和路径,并将其发布在服务器上。

在我的模型中,线条由两个标记组成。 但是,当我发布它时,因为我使用的是从JApplet而不是从数据库生成的ID,所以我将不知道将由哪个Markers组成Path。

因此,我想在表格的标记上插入“临时ID”,并在保存路径之前在视图中进行正确的安排。

我曾考虑过为标记定义一个自定义表格,但它看起来并不十分干燥,如果更改标记模型,我也不想回到这一方面。

形式如下:

  class PointForm(forms.ModelForm):
    temp_id = forms.IntegerField()
    class Meta:
            model = Point

    def clean(self):
            if any(self.errors):
                    # Don't bother validating the formset unless each form is valid on its own
                    return

            ingresso = self.cleaned_data['ingresso']
            ascensore = self.cleaned_data['ascensore']
            scala = self.cleaned_data['scala']

            if (ingresso and ascensore) or (ingresso and scala) or (ascensore and scala):
                    raise forms.ValidationError("A stair cannot be a elevator or an access!!!") 
            return self

    def save(commit=True):
    # do something with self.cleaned_data['temp_id']
            super(PointForm).save(commit=commit)

和模型:

  class Point(models.Model):

    RFID = models.CharField(max_length=200, blank=True)

    x = models.IntegerField()
    y = models.IntegerField()

    piano = models.ForeignKey(Floor)

    ingresso = models.BooleanField()

错误:

  ViewDoesNotExist at /admin/
  Could not import buildings.views.getFloors. View does not exist in module buildings.views.
  Request Method:   GET
  Request URL:  http://127.0.0.1:8000/admin/
  Django Version:   1.4.1
  Exception Type:   ViewDoesNotExist
  Exception Value:  
  Could not import buildings.views.getFloors. View does not exist in module buildings.views.
  Exception Location:   /usr/local/lib/python2.7/dist-packages/django/core/urlresolvers.py in get_callable, line 101

当我尝试加载管理页面时会生成错误,该页面完全没有引用表单。

例外解决方案

好的,我将在这里写出如何找出Django为什么做这种奇怪的事情的方法。

这是找出问题所在的正确方法。

因为我忘记将forms.py添加到from django import forms中,所以引发了异常。

trans by 2020-01-07T23:39:31Z

如何获取Django request.POST中所有选定复选框的值?

嗨,我有一组复选框,例如

<input type="checkbox" name="checks[]" value="1" />
<input type="checkbox" name="checks[]" value="2" />
<input type="checkbox" name="checks[]" value="3" />
<input type="checkbox" name="checks[]" value="4" />

如果选择多个,如何在view.py中访问它们?

我试过了

request.POST['checks']

但这只给了我最后的价值。 我想要的是列表中已选择的所有内容,例如 1,3,4

谢谢

trans by 2020-01-07T15:53:58Z

1 2 3 下一页 共3页