在django中提交表单时,将用户的ID保存在数据库中

时间:2017-01-20 14:47:32

标签: python django forms

我有一个表单,用户可以添加他的供稿网址,然后查看他之前提交的供稿的文章。 如何更改我的代码以保存Feed的所有者(将其提交到网站的用户)?

models.py:

from django.db import models
from django.contrib.auth.models import User

class Feed(models.Model):
    user = models.ManyToManyField(User)
    category = models.ManyToManyField(Category)
    title = models.CharField(max_length=200)
    url = models.URLField()
    is_active = models.BooleanField(default=False)

    def __unicode__(self):
    return self.title

class Article(models.Model):
    feed = models.ForeignKey(Feed)
    title = models.CharField(max_length=200)
    url = models.URLField()
    description = models.TextField()
    publication_date = models.DateTimeField()

def __unicode__(self):
    return self.title

views.py:

from .models import Article, Feed
from django.http import HttpResponse
from .forms import FeedForm

def new_feed(request):
if request.method == "POST":
    form = FeedForm(request.POST)
    if form.is_valid():
        feed = form.save(commit=False)

        existingFeed = Feed.objects.filter(url=feed.url)
        if len(existingFeed)==0:
            feedData = feedparser.parse(feed.url)

            feed.title = feedData.feed.title
            feed.save()

            for entry in feedData.entries:
                article = Article()
                article.title = entry.title
                article.url = entry.link
                article.description = entry.description

                d = datetime.datetime(*(entry.published_parsed[0:6]))
                dateString = d.strftime('%Y-%m-%d %H:%M:%S')

                article.publication_date = dateString
                article.feed = feed
                article.save()

        return redirect(feeds_list)
else:
    form = FeedForm()
return render(request, 'news/new_feed.html', {'form': form})

forms.py

from django import forms
from .models import Feed

class FeedForm(forms.ModelForm):
    class Meta:
        model = Feed
        fields = ('url',)

添加新Feed后,使用此表单: (饲料,没有任何所有者(用户)) The feed, hasn't any owner (user)

1 个答案:

答案 0 :(得分:1)

试试这个

{{1}}