首页 > 解决方案 > Django - 使用用户输入的 id 更新模型

问题描述

我坚持使用 Django 中的第一个应用程序。基本上它将是网页上的几个对象,每个对象都有输入表单。如果要输入用户类型和电子邮件地址,则该对象应标记为“保留”。

我尝试了几种解决方案(可能是因为这种多解决方案,它们都没有奏效)。一开始我使用 AJAX 来更新对象的状态并且它工作,但是当我实现电子邮件地址输入时它失败了。所以我发现我应该放弃 AJAX 并追求 ModelForm。

所以现在我不工作的代码看起来像这样:

urls.py
urlpatterns = [
url(r'^$', views.index),
url(r'^occupy/$', views.occupy, name='occupy'),

index.html
{% for gift in gifts %}
        <div class="panel-heading">
           <h2 class="panel-title"> {{ gift.name }}</h2>
        </div>
        <div class="panel-body">
           {{ gift.link }}
           <form role="form" action="" method="POST">
              {% csrf_token %}
              {{ form }}
              <input type="submit" value="szukaj" name='q' data-id="{{ gift.id }}">
           </form>
        </div>
        {% endfor %}

models.py
class Gift(models.Model):
    name = models.CharField(max_length=100)
    link = models.URLField(max_length=100)
    email = models.EmailField(blank=True, default='')
    occupied = models.BooleanField(default=0)

forms.py
class ContactForm(forms.ModelForm):
    class Meta:
        model = Gift
        fields = ('email',)

views.py
def index(request, id):
    gifts = Gift.objects.all()
    form_class = ContactForm()
    if request.method == 'POST':
        occupy(request)

def occupy(request):
    print('hrj')
    gift_id = request.GET.get('gift_id', None)
    if (gift_id):
        gift = Gift.objects.get(id=int(gift_id))

我猜这部分没问题,但我缺少数据流(电子邮件和 ID)。任何帮助将不胜感激。

标签: pythondjango

解决方案


推荐阅读