因此,我正在try 使用Django建立一个网站,用户可以访问property-detail
个页面,然后联系wine 店的agent
.用户需要填写一张表格,然后通过邮箱发送到agent
.我的邮箱工作得很好,但因为property-detail view
是基于类的视图,而contact_agent view
是基于函数的视图,所以它们是不同的视图.因此,我似乎不能动态地获取property's agent
来获取agent's
邮箱来给他发送邮箱.
我的Models.py:
class Agent(models.Model):
name = models.CharField(max_length=100)
password = models.CharField(max_length=100)
image = models.ImageField(upload_to = 'Images/')
bio = models.TextField()
instagram = models.URLField(max_length=100)
twitter = models.URLField(max_length=100)
facebook = models.URLField(max_length=100)
linkedin = models.URLField(max_length=100)
is_featured = models.BooleanField(default = False)
slug = models.SlugField(default='')
class Property(models.Model):
price = models.IntegerField()
price_per_sqft = models.IntegerField(null=True)
address = models.CharField(max_length = 10000)
state = models.CharField(max_length = 1000)
country = models.CharField(max_length = 1000)
description = models.TextField()
image1 = models.ImageField(upload_to = 'Images/')
image2 = models.ImageField(upload_to = 'Images/')
image3 = models.ImageField(upload_to = 'Images/')
agent = models.ForeignKey(Agent, on_delete=models.CASCADE)
agent_description = models.TextField()
is_featured = models.BooleanField(default = False)
bedrooms = models.IntegerField()
bathrooms = models.IntegerField()
date_posted = models.DateTimeField(default=timezone.now)
slug = models.SlugField(default='')
我的views.py:
@login_required
def contact_agent(request):
property = get_object_or_404(Property)
agent = property.agent
if request.method == "POST":
name = request.POST['name']
email = request.POST['email']
current_address = request.POST['current_address']
phone = request.POST['phone']
message = request.POST['message']
application = f"Name: {name}\nPhone: {phone}\nEmail: {email}\nCurrent Address: {current_address}\nMessage: {message}"
email_message = EmailMessage(
f'Message to agent {agent} from {name}',
application,
settings.EMAIL_HOST_USER,
['{agent.email}'],
)
email_message.send()
return render(request, 'users/contact_agent.html', {
'name': name,
'email': email,
'phone': phone,
'current_address': current_address,
})
else:
return render(request, 'blog/index.html', {})