0

これが私がウェブページから投稿データを取得する方法です。人物モデルは保存できますが、"(u'')"文字列が含まれています。たとえば、firstnameを「Alex」に変更すると、生の値が取得されてu('Alex')保存されます。

def submit_e(req, person_id=None):

if(req.POST):

    try:
        person_id = req.POST['driver']
        person = Person.objects.get(pk=person_id)


        person.firstname = req.POST['firstname'],
        person.midname   = req.POST['middleinitial'],
        person.lastname  = req.POST['lastname'],

        person.full_clean()
        person.save()
    except Exception as e:
        print e
    return HttpResponseRedirect(reverse('users:user_main'))
4

2 に答える 2

0

注意:以下は、あなたの質問に基づいてあなたが見ているものについての私の最良の推測です。推測が間違っている場合は、投稿を詳細で更新してprintください。コード全体にステートメントを配置し、出力を投稿に追加することをお勧めします。

文字列のuプレフィックスは、Unicode文字列を示します。実際には文字列の内容の一部ではありません。インタプリタで文字列を作成する場合:

>>> name = u'Me'

次に、文字列の詳細を要求します。

>>> name
u'Me'

次に、u文字列に関する情報の一部として表示されます。これは、私たちが要求したものです。文字列の内容を印刷すると

>>> print name
Me

その場合、uは表示されません(引用符が表示されないのと同じように)。

インタプリタを使用して問題を再現しようとすると、ユーザー名にUnicode文字列を使用して新しいユーザーを作成しました。

>>> from django.contrib.auth.models import User
>>> new_user = User()
>>> new_user.username = u'Me'
>>> new_user.save()

以前と同様に、文字列に関する詳細を要求するuと、と引用符が表示されますが、文字列の内容を印刷する場合は表示されません。

>>> new_user.username
u'Me'
>>> print new_user.username
>>> Me

が保存されていないことをさらに確認するuために、データベースを直接調べることができます。

sqlite> select username from auth_user;
Me
于 2013-01-05T09:50:34.180 に答える
0

各行の末尾にある「,」を削除する必要があるため、前に:

person.firstname = req.POST['firstname'],
person.midname   = req.POST['middleinitial'],
person.lastname  = req.POST['lastname'],

person.firstname = req.POST['firstname']
person.midname   = req.POST['middleinitial']
person.lastname  = req.POST['lastname']
于 2013-05-16T04:45:07.060 に答える