V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
CBBing
V2EX  ›  Python

Django 中 Html 表单的数据查询问题

  •  
  •   CBBing · 2015-09-22 10:14:46 +08:00 · 2037 次点击
    这是一个创建于 3382 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我在 Django 新建两个 model,一个 class Account ,一个是 class Person,并且 person = models.
    models.OneToOneField(Account),那我在 html 表单里在知道 account 的情况下怎么调用 Person 里的域?
    7 条回复    2015-09-24 17:19:06 +08:00
    lrqrun
        1
    lrqrun  
       2015-09-22 12:02:33 +08:00   ❤️ 1
    CBBing
        2
    CBBing  
    OP
       2015-09-22 12:23:12 +08:00
    @lrqrun 你好,一对一关系也可以用_set 吗?在 html 表单里使用确实不报错,但是我想要的也没有出来
    CBBing
        3
    CBBing  
    OP
       2015-09-22 12:24:48 +08:00
    @lrqrun <h1>{{ account.account_text }}</h1>
    {% if error_message %}<p><strong>{{ error_message }}</strong></p>
    {% endif %}
    <form action="{% url 'manager:focus' account.id %}" method="post">
    {% csrf_token %}
    {# 所有针对内部 URL 的 POST 表单都应该使用{% csrf_token %}模板标签#}
    <ul>
    <input name="focus" value="{{ account.id }}" />
    {% for detailInfo in account.person_set.all %}
    <li>{{ detailInfo.address_text }}</li>
    <li>{{ detailInfo.email_text }}</li>
    <li>{{ detailInfo.tel_number }}</li>
    <li>{{ detailInfo.name_text }}</li>
    <li>{{ detailInfo.focus_number }}</li>
    <li>{{ detailInfo.visit_number }}</li>
    {% endfor %}
    </ul>
    <input type="submit" value="关注他" />
    </form>
    chenlongwen
        4
    chenlongwen  
       2015-09-22 12:55:33 +08:00 via Android   ❤️ 1
    <input name="focus" value="{{ account.id }}" />
    <li>{{ account.person.address_text }}</li>
    ...
    </ul>
    CBBing
        5
    CBBing  
    OP
       2015-09-22 18:44:05 +08:00
    @chenlongwen 多谢指教,还有一个问题

    <form action="{% url 'manager:focus' account.id %}" method="post">
    {% csrf_token %}
    <ul>
    <input name="focus" value="{{ account.id }}" />
    ...
    </ul>
    <input type="submit" value="关注他" />
    </form>
    这个表单怎么接收它传入的数据

    我写的
    def focus(request,account_id):
    p = get_object_or_404(Accounts, pk=account_id)
    try:
    focus = p.person.get(pk=request.POST['focus'])#这行报错
    except (KeyError, Person.DoesNotExist):
    return render(request, 'manager/detailInfo.html', {
    'question': p,
    'error_message': "逻辑错误!!!",
    })
    else:
    p.person.focus_number += 1
    p.person.save()
    return HttpResponseRedirect(reverse('manager:detailInfo', args=(p.id,)))
    提示不能接收
    chenlongwen
        6
    chenlongwen  
       2015-09-22 20:17:25 +08:00 via Android   ❤️ 1
    @CBBing 这个视图的作用是?
    CBBing
        7
    CBBing  
    OP
       2015-09-24 17:19:06 +08:00
    @chenlongwen 不好意思这两天太忙,这个视图就是在点“关注他”后传入这个账户的 account.id 之后就可以根据这个 id 来找到 account,再根据一对一找到 person , person 有一个域是记录关注人数的 focus_number ,使它加一。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3039 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 13:40 · PVG 21:40 · LAX 05:40 · JFK 08:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.