flask: error аргумент - devices () не принимает аргументов (задано 3) - PullRequest
0 голосов
/ 25 февраля 2019

Я новичок в колбе.Я хочу добавить данные из формы в базу данных, но у меня есть эта ошибка.

devices () не принимает аргументов (дано 3)

Я написал этот код для другогофункция, и добавить данные в базу данных правильно.Но для этой функции (устройства) не работает и имеет ошибку.

Вот мой home.py:

class devices(db.Model):
id = db.Column('device_id', db.Integer, primary_key = True)
device_name = db.Column(db.String(80))
device_description = db.Column(db.String(200))  
device_model = db.Column(db.String(80))
def __init__(self, device_name, device_description, device_model):
    self.device_name = device_name
    self.device_description = device_description
    self.device_model = device_model


@app.route("/devices", methods=['POST'])
def devices():
return render_template("devices.html")

@app.route("/show_all_device")
def show_all_device():
return render_template('show_all_device.html', devices = devices.query.all() )

@app.route("/device_add", methods=['GET', 'POST'])
def device_add():
if request.method == 'POST':

     device = devices(request.form['device_name'], request.form['device_description'],
        request.form['device_model'])

     db.session.add(device)
     db.session.commit()
     flash('Record was successfully added')
     return redirect(url_for('show_all_device'))
     return render_template('devices.html')

А вот device.html

{% block content %}
<h2 style="margin: auto; text-align: center;">Devices</h2>
<form action="/device_add" method="POST">
<br>
<p style="display: inline-block;">Device Name:</p> <input type="text" name="device_name">
<br>
<p style="display: inline-block;">Description:</p> <textarea style="margin-top: 20px;" name="device_description"></textarea>
<br>
<p style="display: inline-block;">Model:</p> <input type="text" name="device_model">
<br><br>
<input type="submit" name="structure" value="Add Devices">
</form>
{% endblock %}

Иshow_all_device.html:

 <!DOCTYPE html>
 <html lang = "en">
 <head></head>
    <body>
    <table border="1" style="height: 300px; width: 1000px; text-align: center;">
        <thead>
          <tr>
           <th>Device Name</th>
           <th>Description</th>
           <th>Model</th>
        </tr>
     </thead>

     <tbody>
        {% for device in devices %}
           <tr>
              <td>{{ device.device_name }}</td>
              <td>{{ device.device_description }}</td>
              <td>{{ device.device_model }}</td>
              <td><a href="{{ url_for('device_edit', id=device.id) }}">Edit</a> ~ <a href="{{ url_for('device_delete', id=device.id) }}">Delete</a></td>
           </tr>
        {% endfor %}
     </tbody>
  </table>
  <a href="{{ url_for('device_add') }}">Add New Region</a>

Кто-нибудь может мне помочь?

1 Ответ

0 голосов
/ 25 февраля 2019
class devices(db.Model):
    ...
def devices():
    ....

У вас есть класс и функция с именем devices.Не делай этого.

...