Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class LodgingOffer(models.Model):
- # Foreign Key to my User model
- created_by = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
- ad_title = models.CharField(null=False, blank=False,
- max_length=255, verbose_name='Título de la oferta')
- slug = models.SlugField(max_length=100, blank=True)
- country = CountryField(blank_label='(Seleccionar país)', verbose_name='Pais')
- city = models.CharField(max_length=255, blank = False, verbose_name='Ciudad')
- def __str__(self):
- return "%s" % self.ad_title
- pub_date = models.DateTimeField(auto_now_add=True,)
- def get_absolute_url(self):
- return reverse('host:detail', kwargs = {'slug' : self.slug })
- # I assign slug to offer based in ad_title field,checking if slug exist
- def create_slug(instance, new_slug=None):
- slug = slugify(instance.ad_title)
- if new_slug is not None:
- slug = new_slug
- qs = LodgingOffer.objects.filter(slug=slug).order_by("-id")
- exists = qs.exists()
- if exists:
- new_slug = "%s-%s" % (slug, qs.first().id)
- return create_slug(instance, new_slug=new_slug)
- return slug
- # Brefore to save, assign slug to offer created above.
- def pre_save_article_receiver(sender, instance, *args, **kwargs):
- if not instance.slug:
- instance.slug = create_slug(instance)
- pre_save.connect(pre_save_article_receiver, sender=LodgingOffer)
- class HostingOfferDetailView(UserProfileDataMixin, LoginRequiredMixin, DetailView):
- model = LodgingOffer
- template_name = 'lodgingoffer_detail.html'
- context_object_name = 'lodgingofferdetail'
- def get_context_data(self, **kwargs):
- context = super(HostingOfferDetailView, self).get_context_data(**kwargs)
- user = self.request.user
- # LodgingOffer object
- #lodging_offer_owner = self.get_object()
- # Get the full name of the lodging offer owner
- lodging_offer_owner_full_name = self.get_object().created_by.get_long_name()
- # Get the lodging offer email owner
- lodging_offer_owner_email = self.get_object().created_by.email
- # Get the lodging offer title
- lodging_offer_title = self.get_object().ad_title
- # Get the user interested email in lodging offer
- user_interested_email = user.email
- # Get the user interested full name
- user_interested_full_name = user.get_long_name()
- context['user_interested_email'] = user_interested_email
- context['lodging_offer_owner_email'] = lodging_offer_owner_email
- # Send the data (lodging_offer_owner_email
- # user_interested_email and lodging_offer_title) presented
- # above to the contact_owner_offer function
- contact_owner_offer(self.request, lodging_offer_owner_email,
- user_interested_email, lodging_offer_title)
- return context
- def contact_owner_offer(request, lodging_offer_owner_email, user_interested_email, lodging_offer_title):
- user = request.user
- print("a", lodging_offer_owner_email, user_interested_email)
- if user.is_authenticated:
- print('Send email')
- mail_subject = 'Interesados en tu oferta'
- context = {
- 'lodging_offer_owner_email': lodging_offer_owner_email,
- # usuario dueño de la oferta TO
- 'offer': lodging_offer_title,
- # oferta por la que se pregunta
- 'user_interested_email': user_interested_email,
- # usuario interesado en la oferta
- 'domain': settings.SITE_URL,
- 'request': request
- }
- message = render_to_string('contact_user_own_offer.html', context)
- #to_email = lodging_offer_owner.email,
- send_mail(mail_subject, message, settings.DEFAULT_FROM_EMAIL,
- [lodging_offer_owner_email], fail_silently=True)
- # email = EmailMessage(mail_subject, message, to=[to_email])
- # email.send()
- # return redirect('articles:article_list')
- url(r'^contact-to-owner/(?P<email>[w.@+-]+)/from/'
- r'(?P<interested_email>[w.@+-]+)/(?P<slug>[w-]+)/$',
- contact_owner_offer, name='contact_owner_offer'),
- <div class="contact">
- <a class="contact-button" href="{% url 'host:contact_owner_offer' email=lodging_offer_owner_email interested_email=user_interested_email slug=lodgingofferdetail.slug %}">
- <img src="{% static 'img/icons/contact.svg' %}" alt="">
- <span>Contactar</span>
- </a>
- </div>
- TypeError: contact_owner_offer() got an unexpected keyword argument 'email'
- [10/Oct/2017 01:04:06] "GET /host/contact-to-owner/botibagl@gmail.com/from/ces@ces.edu.co/apartacho/ HTTP/1.1" 500 77979
- def contact_owner_offer(request, lodging_offer_owner_email, user_interested_email, slug):
- user = request.user
- print("a", lodging_offer_owner_email, user_interested_email, slug)
- if user.is_authenticated:
- print('Send email')
- mail_subject = 'Interesados en tu oferta'
- context = {
- 'lodging_offer_owner_email': lodging_offer_owner_email,
- # usuario dueño de la oferta TO
- 'offer': slug,
- # oferta por la que se pregunta
- 'user_interested_email': user_interested_email,
- # usuario interesado en la oferta
- 'domain': settings.SITE_URL,
- 'request': request
- }
- message = render_to_string('contact_user_own_offer.html', context)
- #to_email = lodging_offer_owner.email,
- send_mail(mail_subject, message, settings.DEFAULT_FROM_EMAIL,
- [lodging_offer_owner_email], fail_silently=True)
- url(r'^contact-to-owner/(?P<lodging_offer_owner_email>[w.@+-]+)/from/'
- r'(?P<interested_email>[w.@+-]+)/(?P<slug>[w-]+)/$',
- contact_owner_offer,
- name='contact_owner_offer'
- ),
- <div class="contact">
- <a class="contact-button" href="{% url 'host:contact_owner_offer' lodging_offer_owner_email=lodging_offer_owner_email interested_email=user_interested_email slug=lodgingofferdetail.slug %}">
- <img src="{% static 'img/icons/contact.svg' %}" alt="">
- <span>Contactar</span>
- </a>
- </div>
- Traceback:
- File "/home/bgarcial/.virtualenvs/hostayni/lib/python3.6/site-packages/django/core/handlers/exception.py" in inner
- 42. response = get_response(request)
- File "/home/bgarcial/.virtualenvs/hostayni/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response
- 187. response = self.process_exception_by_middleware(e, request)
- File "/home/bgarcial/.virtualenvs/hostayni/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response
- 185. response = wrapped_callback(request, *callback_args, **callback_kwargs)
- Exception Type: TypeError at /host/contact-to-owner/botibagl@gmail.com/from/fabiola.quimica@gmail.com/apartacho/
- Exception Value: contact_owner_offer() got an unexpected keyword argument 'interested_email'
- def contact_owner_offer(request, email, interested_email, slug):
- ....
- >>> def foo(bar):
- ... print bar
- ...
- >>> foo(bar=10)
- 10
- >>> foo(bar2=10)
- Traceback (most recent call last):
- File "<stdin>", line 1, in <module>
- TypeError: foo() got an unexpected keyword argument 'bar2'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement