0

私のmodels.pyは

class Book(models.Model):
    book_name=models.CharField(max_length=30)
    author_name=models.CharField(max_length=30)
    publisher_name=models.CharField(max_length=40)
    author=models.ForeignKey(Author)

    def __unicode__(self):
        ..........

class Author(models.Model):
    first_name = models.CharField(max_length=30)
    last_name = models.CharField(max_length=40)
    email = models.EmailField()
    age=models.IntegerField()

    def __unicode__(self):
        ........

    def books(self):
        return Book.objects.filter(author=self)

2つの異なるモデルからデータベースへのデータの挿入を実行する必要があります。正しく機能していないコードを使用しているため、views.pyサンプルが必要です。これを手伝ってください。私はDjangoを使用しています。作成者をfireignキーとして使用しているので、自動的に設定されますが、これも発生しません。

4

1 に答える 1

0
def add_author(request):
    if request.method == 'POST':
        fname = request.POST.get('fname')
        lname = request.POST.get('lname')
        email = request.POST.get('email')
        age = request.POST.get('age')

        author = Author(
            first_name = fname,
            last_name = lname,
            email=email,
            age=age
            )
        new_author = author.save()

        book = request.POST.get('book')
        publisher = request.POST.get('publisher')

        fullname = "{0} {1}".format(new_author.first_name, 
                                    new_author.last_name)

        Book.objects.create(
            book_name=book, 
            author_name=fullname, 
            publisher_name=publisher
            author = new_author
            )

    return render(request, 'add_author.html')

add_author.html

<form method="post">
    {% csrf_token %}
    <h5>Author Info: </h5>
    First name: <input type="text" name="fname"><br/>
    Last name: <input type="text" name="lname"><br/>
    Email: <input type="text" name="email"><br/>
    Age: <input type="text" name="age"><br/>

    <h5>Book Info: </h5>
    Name: <input type="text" name="book"><br/>
    Publisher: <input type="text" name="publisher"><br/>

    <input type="submit" value="Save">
</form>
于 2013-03-02T13:13:31.910 に答える