【问题标题】:edit and save the already existing data from database in django在 django 中编辑并保存数据库中已有的数据
【发布时间】:2013-02-18 04:20:33
【问题描述】:

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 个模型。因为我用单个表做同样的事情,所以对两个表执行有些困惑。我是一个学习者django.plz 的帮助我解决这个问题

请检查我的 views.py 以获取编辑选项。

def editbook(request,book_id):
    if request.POST:
        book_name =request.POST['book_name']
        publisher_name =request.POST['publisher_name']
    books=Book.objects.filter(book_id=book_id).update(book_name=book_name, publisher_name=publisher_name)

    first_name = request.POST.get('first_name')
        last_name = request.POST.get('last_name')
        email = request.POST.get('email')
        age = request.POST.get('age')
    author = Author.objects.update(first_name = first_name,last_name = last_name,email=email,age=age)
        return redirect('/index/')
    else:
        books = Book.objects.get(pk=book_id)
    return render_to_response('editbook.html',{'books':books},context_instance=RequestContext(request))

ya.this 无法正常工作。请指导我如何执行此操作。

【问题讨论】:

  • 你试过什么没用?

标签: mysql django django-models


【解决方案1】:
def editbook(request,book_id):
   books = Book.objects.get(pk=book_id) 
   if request.POST:
        book_name = request.POST.get('book_name')
        publisher_name = request.POST.get('publisher_name')

        books.book_name = book_name
        books.publisher = publisher_name
        get_author = books.save()

        first_name = request.POST.get('first_name')
        last_name = request.POST.get('last_name')
        email = request.POST.get('email')
        age = int(request.POST.get('age'))

        author = Author.objects.get(pk=get_author.author_id)
        author.first_name = first_name
        author.last_name = last_name
        author.email = email
        author.age = age
        author.save()

        return redirect('/index/')

    return render_to_response('editbook.html',{
        'books':books
    },context_instance=RequestContext(request))

【讨论】:

  • 为什么你将 author_id 声明为 Pk,它是外键在模型中知道。它是怎么回事
  • 你提到的外键在书本模型中。 author_id 是作者的主键,也连接到书作者
  • 是的,但我没有在我的应用程序中使用表单。我必须收集值并直接呈现到 sditbook.html。你给出的代码也无法正常运行
  • 我收到此错误“未缩进与任何外部缩进级别不匹配”
  • 我没有像你之前所说的那样使用表单。我发布的内容是您喜欢的硬编码
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-25
  • 1970-01-01
相关资源
最近更新 更多