我一直在尝试开发一个用于处理条形标签的django应用程序...到目前为止,我可以添加标签,向标签添加产品,以及从标签中删除产品。现在,我想在选项卡中添加/删除产品时使用AJAX,我不知道是否需要使用表单...这是我到目前为止所拥有的:
models.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)
views.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)
urls.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>
addproduct.html
{{ product }} added to tab {{ tab.name }}
所以例如,当我添加一些产品时,我有一个无用的页面“产品添加到选项卡”,因为没有一些html页面我不能这样做,所以我可以使用视图。那有意义吗? 但我不想把它作为一个表格,因为这将用于7英寸的平板电脑,我会为每个产品都有合适尺寸的按钮,因为我工作的酒吧有时可能非常繁忙,所以我需要那种速度。
理想情况下,我会在所有内容上都有ajax,左侧是当前打开标签的列表,右栏是标签编辑,包括添加产品,关闭标签等的选项。 所以我想要的是,singletab.html中有产品列表,每个产品旁边都有一个“X”。您单击X,产品淡出,列表和其他所有内容都会更新,而无需重新加载页面。
你们有没有看到任何解决方案?抱歉我的英语,而不是我的主要语言。
PS: 这也是我的第一个django应用程序,所以我很抱歉任何愚蠢的错误.. 一个简单的jquery例如(/ tabnumber / add / product)是否足够?我将如何实现它?
答案 0 :(得分:0)
对不起,除了以下几行之外我没有理解你的问题。
有singletab.html中的产品列表,每个产品旁边都有一个“X”。您单击X,产品淡出,列表和其他所有内容都会更新,而无需重新加载页面。
我认为您可以尝试使用JQuery。它的Javascript库使事件处理和页面的使用变得更容易。
对于淡出示例,您可以看到w3 example which is good place to start learning about JQuery.,您也可以参考Ajax with JQuery了解如何在JQuery中使用Ajax。
希望它可以帮助你或让你领先一步。祝你好运: - )