Python 如何查询单个要删除的对象而不是整个查询列表?
我可以删除一个用户的帖子(tweets),但是当我这样做的时候,当我一次只想删除一条时,它最终会删除该用户的所有tweets,我认为这与我查询用户tweets的方式有关,但我不确定。我正在使用Django 1.8 型号.pyPython 如何查询单个要删除的对象而不是整个查询列表?,python,django,Python,Django,我可以删除一个用户的帖子(tweets),但是当我这样做的时候,当我一次只想删除一条时,它最终会删除该用户的所有tweets,我认为这与我查询用户tweets的方式有关,但我不确定。我正在使用Django 1.8 型号.py from django.db import models from django.contrib.auth.models import User import tagging from tagging.registry import register as tagging_
from django.db import models
from django.contrib.auth.models import User
import tagging
from tagging.registry import register as tagging_
import os
def get_image_path(instance, filename):
return os.path.join('photos', str(instance.user.id), filename)
class UserProfile(models.Model):
user = models.OneToOneField(User)
bio = models.CharField(max_length=120, blank=True, verbose_name='Biography')
follows = models.ManyToManyField('self', related_name='followers', symmetrical=False, blank=True) #reverse related relations, or through
theme = models.ImageField(upload_to=get_image_path, blank=True)
profile_picture = models.ImageField(upload_to=get_image_path, blank=True)
def __str__(self):
return self.bio
class Tweet(models.Model):
userprofile = models.ForeignKey(UserProfile)
tweets = models.TextField(max_length=120)
date = models.DateTimeField()
def json_feat(self):
return{
'title': self.tweets,
}
def __str__(self):
return self.tweets
tagging_(Tweet)
def delete_tweet(request, user_id):
data = {'You deleted your tweet'}
user = get_object_or_404(User, pk=user_id)
user_profile = get_object_or_404(UserProfile, user=user)
get_users_tweets = Tweet.objects.filter(userprofile=user_profile)
remove_tweet = get_users_tweets.delete()
return JsonResponse(data, safe=False)
视图.py
from django.db import models
from django.contrib.auth.models import User
import tagging
from tagging.registry import register as tagging_
import os
def get_image_path(instance, filename):
return os.path.join('photos', str(instance.user.id), filename)
class UserProfile(models.Model):
user = models.OneToOneField(User)
bio = models.CharField(max_length=120, blank=True, verbose_name='Biography')
follows = models.ManyToManyField('self', related_name='followers', symmetrical=False, blank=True) #reverse related relations, or through
theme = models.ImageField(upload_to=get_image_path, blank=True)
profile_picture = models.ImageField(upload_to=get_image_path, blank=True)
def __str__(self):
return self.bio
class Tweet(models.Model):
userprofile = models.ForeignKey(UserProfile)
tweets = models.TextField(max_length=120)
date = models.DateTimeField()
def json_feat(self):
return{
'title': self.tweets,
}
def __str__(self):
return self.tweets
tagging_(Tweet)
def delete_tweet(request, user_id):
data = {'You deleted your tweet'}
user = get_object_or_404(User, pk=user_id)
user_profile = get_object_or_404(UserProfile, user=user)
get_users_tweets = Tweet.objects.filter(userprofile=user_profile)
remove_tweet = get_users_tweets.delete()
return JsonResponse(data, safe=False)
模板
{% for tweets in tweet %}
{{ tweets.userprofile.user }} | {{ tweets }} | {{ tweets.date }} | <a href='{% url 'delete_tweet' user_id=user.id %}'>Delete </a> <br />
{% endfor %}
{%用于tweet%}
{{tweets.userprofile.user}}}{{tweets}}}{{tweets.date}}}}}{br/>
{%endfor%}
url
url(r'^delete/(?P<user_id>[\d]+)/$', views.delete_tweet, name='delete_tweet'),
url(r'^delete/(?P[\d]+)/$),views.delete\u tweet,name='delete\u tweet'),
将为您提供指定用户编写的所有推文->所有推文都将被删除。您要删除哪一个?您需要指定这一点
编辑:
(在注释中指定OP希望执行的操作后)
将您的url更新为:
url(r'^delete/(?P<tweet_id>[\d]+)/$', views.delete_tweet, name='delete_tweet'),
def delete_tweet(request, tweet_id):
data = {'You deleted your tweet.'}
tweet = Tweet.objects.filter(pk=tweet_id)
tweet.delete()
return JsonResponse(data, safe=False)
将为您提供指定用户编写的所有推文->所有推文都将被删除。您要删除哪一个?您需要指定这一点
编辑:
(在注释中指定OP希望执行的操作后)
将您的url更新为:
url(r'^delete/(?P<tweet_id>[\d]+)/$', views.delete_tweet, name='delete_tweet'),
def delete_tweet(request, tweet_id):
data = {'You deleted your tweet.'}
tweet = Tweet.objects.filter(pk=tweet_id)
tweet.delete()
return JsonResponse(data, safe=False)
将为您提供指定用户编写的所有推文->所有推文都将被删除。您要删除哪一个?您需要指定这一点
编辑:
(在注释中指定OP希望执行的操作后)
将您的url更新为:
url(r'^delete/(?P<tweet_id>[\d]+)/$', views.delete_tweet, name='delete_tweet'),
def delete_tweet(request, tweet_id):
data = {'You deleted your tweet.'}
tweet = Tweet.objects.filter(pk=tweet_id)
tweet.delete()
return JsonResponse(data, safe=False)
将为您提供指定用户编写的所有推文->所有推文都将被删除。您要删除哪一个?您需要指定这一点
编辑:
(在注释中指定OP希望执行的操作后)
将您的url更新为:
url(r'^delete/(?P<tweet_id>[\d]+)/$', views.delete_tweet, name='delete_tweet'),
def delete_tweet(request, tweet_id):
data = {'You deleted your tweet.'}
tweet = Tweet.objects.filter(pk=tweet_id)
tweet.delete()
return JsonResponse(data, safe=False)
您需要在URL中添加推特id
url(r'^delete/(?P<user_id>[\d]+)/(?P<tweet_id>[\d]+)$', views.delete_tweet, name='delete_tweet'),
这将删除关于该用户的特定推文。您需要在URL中添加推文id
url(r'^delete/(?P<user_id>[\d]+)/(?P<tweet_id>[\d]+)$', views.delete_tweet, name='delete_tweet'),
这将删除关于该用户的特定推文。您需要在URL中添加推文id
url(r'^delete/(?P<user_id>[\d]+)/(?P<tweet_id>[\d]+)$', views.delete_tweet, name='delete_tweet'),
这将删除关于该用户的特定推文。您需要在URL中添加推文id
url(r'^delete/(?P<user_id>[\d]+)/(?P<tweet_id>[\d]+)$', views.delete_tweet, name='delete_tweet'),
这将删除关于该用户的特定推文。您没有传递任何信息来标识用户要删除的推文。您没有传递任何信息来标识用户要删除的推文。您没有传递任何信息来标识用户要删除的推文。您没有传递任何信息识别用户想要删除哪条推文的信息。我该如何指定?这就是我需要知道的?@appa_lover你需要告诉我们你想删除哪条推文。我们可以告诉你怎么做。是否要删除(例如,最近的推文)?我有一个页面上所有用户推文的列表,我希望能够单击该推文旁边的,它会删除该特定推文,这有帮助吗?或者你需要一个特定的对象id吗?将tweet id添加到tweet remove URL中,并根据该id查询用户tweet。那么你是说将tweet\u id添加到我的URL中,然后从那里查询每个id,这样就可以单独删除它们了?我该如何指定呢?这就是我需要知道的?@appa_lover你需要告诉我们你想删除哪条推文。我们可以告诉你怎么做。是否要删除(例如,最近的推文)?我有一个页面上所有用户推文的列表,我希望能够单击该推文旁边的,它会删除该特定推文,这有帮助吗?或者你需要一个特定的对象id吗?将tweet id添加到tweet remove URL中,并根据该id查询用户tweet。那么你是说将tweet\u id添加到我的URL中,然后从那里查询每个id,这样就可以单独删除它们了?我该如何指定呢?这就是我需要知道的?@appa_lover你需要告诉我们你想删除哪条推文。我们可以告诉你怎么做。是否要删除(例如,最近的推文)?我有一个页面上所有用户推文的列表,我希望能够单击该推文旁边的,它会删除该特定推文,这有帮助吗?或者你需要一个特定的对象id吗?将tweet id添加到tweet remove URL中,并根据该id查询用户tweet。那么你是说将tweet\u id添加到我的URL中,然后从那里查询每个id,这样就可以单独删除它们了?我该如何指定呢?这就是我需要知道的?@appa_lover你需要告诉我们你想删除哪条推文。我们可以告诉你怎么做。是否要删除(例如,最近的推文)?我有一个页面上所有用户推文的列表,我希望能够单击该推文旁边的,它会删除该特定推文,这有帮助吗?或者你需要一个特定的对象id吗?将tweet id添加到tweet remove URL中,并根据该id查询用户tweet。你是说将tweet_id添加到我的URL中,然后从那里查询每个id,这样就可以单独删除它们了?