首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >测试Django管理表单

测试Django管理表单
EN

Stack Overflow用户
提问于 2017-02-09 10:53:23
回答 1查看 3.5K关注 0票数 3

我想在管理面板的应用程序中测试添加自定义文档文件表单。不幸的是,django的文档对此相当模糊。

这是我的模型:

代码语言:javascript
复制
class Document(models.Model):
    pub_date = models.DateTimeField('date published')
    title = models.CharField(max_length=255)
    description = models.TextField()
    pdf_doc = models.FileField(upload_to=repo_dir, max_length=255)

这是我的测试:

代码语言:javascript
复制
from django.test import TestCase
from django.test import Client
from django.utils import timezone
from datetime import datetime, timedelta

class DocumentAdminFormTest(TestCase):

    def test_add_document_form(self):
        client = Client()
        change_url = 'admin/docrepo/document/add/'
        today = datetime.today()
        filepath = u'/filepath/to/some/pdf/'
        data = {'title': 'TEST TITLE',
                'description': 'TEST DESCRIPTION', 
                'pub_date0': '2000-01-01',
                'pub_date1': '00:00:00',
                'pdf_doc': filepath,
                }
        response = client.post(change_url, data)
        print('REASON PHRASE: ' + response.reason_phrase)
        self.assertIs(response.status_code, 200)

我希望得到200个回应,而张贴的表格显示的数据。出于某种原因,response.status_code给出了404,而response.reason_phrase给出了'Not Found‘。有没有可能问题出在目录上?

EN

回答 1

Stack Overflow用户

发布于 2017-05-26 23:04:28

你必须使用log the client in

代码语言:javascript
复制
c = Client()
c.login(username='your_username', password='your_password')
response = c.post(change_url, data)

定义change_url最正确的方法是使用reverse()。你可以通过browse the docs找到正确的方法来做到这一点。例如:

代码语言:javascript
复制
change_url = reverse('admin:docrepo_document_add')
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42127422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档