簡體   English   中英

如何正確刪除特定的ManyToMany關系?

[英]How to properly remove a specific ManyToMany relationship?

我與其中一個模型有ManyToMany關系。 在刪除孩子時,我想刪除該關系,但保留該記錄,因為其他對象可能正在使用該記錄。 在調用刪除視圖時,出現AttributeError錯誤:

異常值:“ QuerySet”對象沒有屬性“ clear”

這是我的models.py:

class Feed(models.Model):
    username = models.CharField(max_length=255, unique=True)

class Digest(models.Model):
    name = models.CharField(max_length=255)
    user = models.ForeignKey(User)
    items = models.PositiveIntegerField()
    keywords = models.CharField(max_length=255, null=True, blank=True)
    digest_id = models.CharField(max_length=20, unique=True)
    time_added = models.DateTimeField(auto_now_add=True)
    active = models.BooleanField(default=1)
    feeds = models.ManyToManyField(Feed)

以及views.py的相關部分:

def feed_delete(request, id):
    digest = get_object_or_404(Digest, id=id)
    if digest.user == request.user:
        Feed.objects.get(id=request.POST.get('id')).digest_set.filter(id=id).clear()

    return HttpResponseRedirect(digest.get_absolute_url())

清除摘要摘錄上的字段

digest = get_object_or_404(Digest, id=id)
if digest.user == request.user:
  digest.feeds.clear()
  #do your processing

回應您的評論。

digest = get_object_or_404(Digest, id=id)
if digest.user == request.user:
  feed=digest.feeds.get(id=2)#get an instance of the feed to remove
  digest.feeds.remove(feed)#remove the instance 

希望這可以幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM