我一直在尝试开发一个用于处理栏标签的 django 应用程序......到目前为止,我可以添加标签、将产品添加到标签以及从标签中删除产品。现在,我想在从选项卡中添加/删除产品时使用 AJAX,但我不知道是否需要使用表单......这是我目前所拥有的:
模型.py
class Product(models.Model):
name = models.CharField(max_length='70')
price = models.FloatField()
def __unicode__(self):
return self.name
class Tab(models.Model):
number = models.IntegerField()
name = models.CharField(max_length='50')
tabdate = models.DateTimeField('date created')
consumed = models.ManyToManyField(Product, through='ConsumedRelation')
def __unicode__(self):
return self.name
class ConsumedRelation(models.Model):
tab = models.ForeignKey(Tab)
product = models.ForeignKey(Product)
count = models.PositiveIntegerField(blank=True, null=True, default=1)
def __unicode__(self):
return str(self.product)
视图.py
def addproduct(request, number, product):
tab = Tab.objects.get(number=number)
product = Product.objects.get(id=product)
add = ConsumedRelation.objects.create(product=product, tab=tab, count=1)
add.save()
context = {'tab': tab, 'product': product}
return render_to_response('addproduct.html', context)
def deleteproduct(request, number, consumedid):
tab = Tab.objects.get(number=number)
ConsumedRelation.objects.filter(id=consumedid).delete()
context = {'tab': tab}
return render_to_response('deleteproduct.html', context)
网址.py
url(r'^tabs/(?P<number>[0-9].*)/delete/(?P<consumedid>[0-9].*)/$', 'barcomandas.views.deleteproduct'),
url(r'^tabs/(?P<number>[0-9].*)/add/(?P<product>[0-9].*)/$', 'barcomandas.views.addproduct'),
singletab.html
<h1>{{ tab.name }} | {{ tab.number }}</h1>
<h2>Consumed</h2>
{% for consumed in consumedlist %}
<a href="delete/{{ consumed.id }}">X</a>{{ consumed }}<br/>
{% endfor %}
<div id="addproducts">
{% for product in productlist %}
<li><a href="add/{{ product.id }}">{{ product.name }}</a></li>
{% endfor %}
</div>
添加产品.html
{{ product }} added to tab {{ tab.name }}
例如,当我添加一些产品时,我有一个无用的页面“产品添加到选项卡”,因为没有一些 html 页面我无法做到,所以我可以使用视图。那有意义吗?但我不想把它做成一个表格,因为这将用于一个 7 英寸的平板电脑,而且我会为每个产品设置大小合适的按钮,因为我工作的酒吧有时会非常忙碌,所以我需要这样的速度。
理想情况下,我会对所有内容都有 ajax,左侧是当前打开的选项卡列表,右侧列是选项卡编辑,以及添加产品、关闭选项卡等的选项。所以我想要的是,有singletab.html 中的产品列表,每个产品的旁边都有一个“X”。您单击 X,产品消失,列表和其他所有内容都会更新,而无需重新加载页面。
你们有什么解决办法吗?对不起我的英语,不是我的主要语言。
PS:这也是我的第一个 django 应用程序,所以对于任何愚蠢的错误,我深表歉意.. 一个简单的 jquery 例如(/tabnumber/add/product)就足够了吗?我将如何实施它?