簡體   English   中英

在表單提交時創建Django模型實例

[英]Creating Django model instance on form submission

我正在嘗試在我的項目中創建一個“統計”應用程序,以跟蹤我的網站生成的所有潛在客戶。 當用戶提交“請求信息”表格時,會自動向與該產品關聯的企業發送一條消息。 同時,我希望在Stats應用程序(然后我們正在使用的其他應用程序)的一個模型中創建一個模型實例。 統計信息在后台運行,僅收集某些事物的信息視圖模型實例。 這是代碼細分:

風景:

def ListingView(request,name_initials,l_slug):
    listing = get_object_or_404(Listing,l_slug=l_slug)
    images = ListingImage.objects.filter(property=listing)
    form = ContactPropertyForm(request.POST or None)

    context = {
            'listing':listing,
            'images':images,
            'form':form,
            }

    if form.is_valid():
        name = form.cleaned_data.get('name')
        phone = form.cleaned_data.get('phone')
        email = form.cleaned_data.get('email')
        party_size = form.cleaned_data.get('party_size')
        form_message = form.cleaned_data.get('message')
        listing_address = listing.address
        message = name + "  " + phone + "   " + email + "   " + party_size + "  " + listing_address
        to_email = ['email here']
        html_message = "<b>Name: </b>" + name + "<br>" + "<b>Phone: </b>" + phone + "<br>" + "<b>Email: </b>" + email + "<br>" + "<b>Group Size: </b>" + party_size + "<br>" + "<b>Property: </b>" + listing_address
        send_mail('New Lead', message, 'from email', ['To email'], fail_silently=False, html_message=html_message)

        Leads.add(lead)
        lead = Leads.objects.create(
            listing = listing_address,
            company = listing.l_company,
            )


    return render(request,'listings/single_listing.html',context)

具體來說,這就是我們正在處理的工作:

Leads.add(lead)
    lead = Leads.objects.create(
        listing = listing_address,
        company = listing.l_company,
        )

提交表單時,我也收到此錯誤:

AttributeError at /tu/diamond-green-apartments
type object 'Leads' has no attribute 'add'

也許我不打算在單獨的應用程序模型中正確添加模型實例?

旁注:就上下文而言,我將它改編自先前從事的另一個項目,它是通知系統的一部分。 原來是這樣的:

if user.is_authenticated():
    if user in obj.likes.all():
        obj.likes.remove(user)
    else:
        obj.likes.add(user)
        notification = UserNotification.objects.create(
            fromUser = self.request.user,
            toUser = obj.author,
            post = obj,
            notify_type = "like",
        )

Django add方法僅用於將實例添加到多對一或多對多相關對象集中。 如果您不需要Leads.add(lead)則可以毫無問題地刪除它,此行將添加新的Lead對象本身:

lead = Leads.objects.create(
    listing = listing_address,
    company = listing.l_company,
)

暫無
暫無

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

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