Python Django-通过id使用用户输入更新模型

Python Django-通过id使用用户输入更新模型,python,django,Python,Django,我坚持使用Django中的第一个应用程序。 基本上,它将是网页上的几个对象,每个对象的输入形式。如果要输入用户类型和电子邮件地址,则应将此对象标记为“保留” 我尝试了几种解决方案(可能是因为这种多重解决方案,它们都不起作用)。在beggining,我使用AJAX来更新对象的状态,它工作正常,但当我实现电子邮件地址输入时,它失败了。所以我发现我应该放弃AJAX,转而追求ModelForm 因此,目前我的非工作代码如下所示: urls.py urlpatterns = [ url(r'^$', vi

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

我尝试了几种解决方案(可能是因为这种多重解决方案,它们都不起作用)。在beggining,我使用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))
url.py
URL模式=[
url(r'^$',views.index),
url(r“^occude/$”,views.occude,name='occude'),
index.html
{%用于礼品中的礼品%}
{{gift.name}
{{gift.link}
{%csrf_令牌%}
{{form}}
{%endfor%}
models.py
班级礼物(型号.型号):
name=models.CharField(最大长度=100)
link=models.URLField(最大长度=100)
email=models.EmailField(空白=True,默认为“”)
占用=模型.布尔字段(默认值=0)
forms.py
类ContactForm(forms.ModelForm):
类元:
型号=礼物
字段=('email',)
views.py
def索引(请求,id):
礼品=礼品.objects.all()
form_class=ContactForm()
如果request.method==“POST”:
占用(请求)
def占用(请求):
打印('hrj')
gift\u id=request.GET.GET('gift\u id',None)
如果(礼物id):
gift=gift.objects.get(id=int(gift\u id))
我想这部分还可以,但我缺少数据流(电子邮件和ID)。
任何帮助都将不胜感激。

你到底想实现什么?当用户在输入字段中键入电子邮件时,保留与该输入字段相关的对象?如果它看起来确实像AJAX,那么继续进行是一个好方法。AJAX到底有什么不起作用?@PolRaguénès是的,这是正确的。因此,我现在缺乏的知识是对的ming out-如何将输入(通过表单或html输入)与AJAX代码连接。我正在使用AJAX更改给定对象的状态:
$('button')。on('click',function(event){event.preventDefault();var element=$(this);$.AJAX({url:'/occupt/',type:'GET',data:{gift\u id:element.attr(“数据id”)}成功:函数(响应){element.html(“”+响应);}}}});